[fpc-devel] Lazarus Apache module crashes during concurrent requests
ABorka
fpc-devel at aborka.com
Thu Sep 25 00:58:20 CEST 2008
Well, it seems we have some progress now.
The
WaitForThreadTerminate(BeginThread(@__dummythread), 300);
seems to fix it on Windows. At least for 2 concurrent requests. For some
reason Apache cannot seem to want to run more than 2 requests at a time.
If more comes in at a time, the first 2 starts running and the rest have
to wait till at least 1 current request is handled. Even when
MaxConnectionsPerServer is set to higher than 2 in the registry.
uses cmem; did not fix the crash on Windows.
I will try to make apache modules load in Linux next so some tests can
be done there too.
AB
Jonas Maebe wrote:
>
> On 24 Sep 2008, at 13:02, Michael Van Canneyt wrote:
>
>> On Wed, 24 Sep 2008, Jonas Maebe wrote:
>>
>>>
>>> On 24 Sep 2008, at 12:35, Michael Van Canneyt wrote:
>>>
>>>> This is a known problem; the heap manager does not function
>>>> correctly in a
>>>> DLL when an external program (apache, in this case) creates new
>>>> threads.
>>>
>>> The heap manager is simply not thread safe until the FPC threading
>>> system has
>>> been initialised (by starting a thread).
>>
>> It is not that simple. The heap manager cannot handle situations where
>> threads have been started by code that is not aware of the FPC threading
>> mechanisms - such as apache.
>
> Ah yes, that's indeed a problem with the new 2.3.x heap manager. I don't
> think the 2.2.x heap manager cares though, since it uses a regular
> critical section/mutex.
>
>
> Jonas
> _______________________________________________
> fpc-devel maillist - fpc-devel at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-devel
>
More information about the fpc-devel
mailing list