Am 14.10.2016 20:31 schrieb "Snorkl e" <tony.cad...@gmail.com>: > > Yep, I used heaptr, my code is clean. > Sometimes it would happen after 3 connects/disconnects and sometimes after 500. > With the GUID as the event name it has never happened again and I really stress tested it. > > It sounds like windows bug to me, but who knows.
Looking at the code of the RTL it could be a FPC bug. FPC calls CreateEvent() basically like this: Result := CreateEvent(..., PChar(Name)); Now the point is that by Name being a String the result of PChar(Name) is always a valid string consisting only of #0. That however is not equal to Nil which the documentation on MSDN states as necessary for an anonymous event. Are you able to compile FPC and its RTL yourself? In that case I'd like to ask you to adjust the function BasicEventCreate in $fpcdir/rtl/win/systhrd.inc like this: var n: PChar; begin new(plocaleventrec(result)); if Length(Name) = 0 then n := Nil else n := PChar(Name); plocaleventrec(result)^.FHandle := CreateEvent(EventAttributes, AManualReset, InitialState, n); end; With this and rebuilt RTL, packages and Co I'd ask you to test your code again and report back whether that solves the problem. Regards, Sven
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal