Hi Jonas,

This seems to work on Windows (and solves the problem), but on Linux WaitForThreadTerminate waits forever.

WaitForThreadTerminate(BeginThread(@__dummythread), 300);

apache just waits and doesn't start until I stop the apache loading with ctrl+c, as if it is in an infinite loop and waiting.

Any thoughts?

AB

Jonas Maebe wrote:

On 24 Sep 2008, at 10:58, ABorka wrote:

I'm not sure that something is changed to make it incompatible.
The apache modules compiled on windows are only crashing if multiple requests are coming at the same time, and they are crushing at function/procedure returns (Yes, on Linux it is even worse, since no module gets even loaded by apache. That might be some C API translation problem).


Maybe you have to initialise the threading system so all the necessary locks in the system unit get activated. Something like

{$ifdef unix}
uses
  cthreads;
{$endif}

...

function dummythread(p: pointer): ptrint;
begin
end;

initialisation
 WaitForThreadTerminate(BeginThread(@dummythread));
end.


Jonas
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to