![]() |
Memoryleak in TUdpSocket durch toggeln des Properties Active
Hallo,
ich habe ein Memoryleak wenn ich einen TUdpSocket über das Property "Active" immer wieder an und ausschalte. Beispiel:
Code:
Was mache ich da falsch? nach ca. 400 mal kommt dann ein WSAENOBUFS Error ("No Buffer Space Available -- A socket operation could not be performed because the system ran out of buffer space or the queue was full."); Danach sogar ein BSOD (Bluescreen) wenn ich im Internetexplorer eine Seite aufrufen möchte...
TUdpSocket *fUdpSocket;
fUdpSocket = new TUdpSocket(NULL); while(true) { fUdpSocket->Active = true; Application->ProcessMessages(); fUdpSocket->Active = false; } delete fUdpSocket; auch ein komplettes Erzeugen und Freigeben nützt nichts:
Code:
Ist das tatsächlich ein bug in der VCL? Kann ich das über API Funktionen wider ausbügeln?
TUdpSocket *fUdpSocket;
while(true) { fUdpSocket = new TUdpSocket(NULL); fUdpSocket->Active = true; Application->ProcessMessages(); fUdpSocket->Active = false; delete fUdpSocket; } (Ich arbeite mit CBuilder6 auf WinXP) mfg, Matmok |
Re: Memoryleak in TUdpSocket durch toggeln des Properties Ac
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
offensichtlich ist dieses Problem schon in einer neueren Version der VCL behoben worden: Ich habe die Datei "sockets.pas" vom CBuilder6 und vom RadStudio verglichen und den entscheidenen Unterschied in der procedure "Close" gefunden, in der Datei vom CBuilder 6 fehlt einfach das closesocket(FSocket); <siehe Screenshot im Anhang>; Ich habe jetzt einfach die Datei angepaßt und zu meinem C6 Projekt zugefügt. mfg, Matmok |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz