Am 14.10.2016 20:31 schrieb "Snorkl e" <>:
> 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

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/ like this:

  n: PChar;
  if Length(Name) = 0 then
    n := Nil
    n := PChar(Name);
  plocaleventrec(result)^.FHandle := CreateEvent(EventAttributes,
AManualReset, InitialState, n);

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.

fpc-pascal maillist  -

Reply via email to