Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   C++ Memoryleak in TUdpSocket durch toggeln des Properties Active (https://www.delphipraxis.net/116703-memoryleak-tudpsocket-durch-toggeln-des-properties-active.html)

matmok 4. Jul 2008 16:42


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:
TUdpSocket   *fUdpSocket;

fUdpSocket = new TUdpSocket(NULL);
while(true)
   {
   fUdpSocket->Active = true;
   Application->ProcessMessages();
   fUdpSocket->Active = false;
   }
delete fUdpSocket;
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...

auch ein komplettes Erzeugen und Freigeben nützt nichts:
Code:
TUdpSocket   *fUdpSocket;

while(true)
   {
   fUdpSocket = new TUdpSocket(NULL);
   fUdpSocket->Active = true;
   Application->ProcessMessages();
   fUdpSocket->Active = false;
   delete fUdpSocket;
   }
Ist das tatsächlich ein bug in der VCL? Kann ich das über API Funktionen wider ausbügeln?

(Ich arbeite mit CBuilder6 auf WinXP)

mfg,
Matmok

matmok 7. Jul 2008 15:22

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 08:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz