<p>Am 14.10.2016 20:31 schrieb "Snorkl e" <<a href="mailto:tony.caduto@gmail.com">tony.caduto@gmail.com</a>>:<br>
><br>
> Yep, I used heaptr, my code is clean.<br>
> Sometimes it would happen after 3 connects/disconnects and sometimes after 500.<br>
> With the GUID as the event name it has never happened again and I really stress tested it.<br>
><br>
> It sounds like windows bug to me, but who knows.</p>
<p>Looking at the code of the RTL it could be a FPC bug. FPC calls CreateEvent() basically like this:</p>
<p>Result := CreateEvent(..., PChar(Name));</p>
<p>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.</p>
<p>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:</p>
<p>var<br>
n: PChar;<br>
begin<br>
new(plocaleventrec(result));<br>
if Length(Name) = 0 then<br>
n := Nil<br>
else<br>
n := PChar(Name);<br>
plocaleventrec(result)^.FHandle := CreateEvent(EventAttributes, AManualReset, InitialState, n);<br>
end;</p>
<p>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.</p>
<p>Regards,<br>
Sven</p>