On 26/09/2020 13:35, Martin Frb via fpc-devel wrote:
Unfortunately I do not have Delphi.
Can anyone test this?
I made a test program
If it does not print any "in foo" then it ignores the instance.
Otherwise it should print one "in foo".
Besides of "what Delphi does", what would anyone expect from reading the
code?
program Project1;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX} cthreads, {$ENDIF} Classes;
type
TMyClass = class
procedure Foo;
end;
TMyThread = class(TThread)
public
procedure Execute; override;
end;
var
i: integer;
procedure TMyThread.Execute;
var
c1, c2: TMyClass;
begin
c1 := TMyClass.Create;
c2 := TMyClass.Create;
Queue(self, @c1.Foo);
Queue(self, @c2.Foo);
RemoveQueuedEvents(Self, @c1.Foo);
inc(i);
end;
procedure TMyClass.Foo;
begin
writeln('In Foo');
end;
begin
i := 0;
TMyThread.Create(False);
while i = 0 do ;
CheckSynchronize();
writeln('Did we get one or none "In Foo"');
ReadLn;
end.
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel