This is how currently the code looks like for the problematic call:
FCriticalSection.Enter;
try
if (FMaxRequests>0) and (FWorkingWebModules.Count>=FMaxRequests) then
Raise EFPApacheError.Create(SErrTooManyRequests);
if FIdleWebModules.Count > 0 then
begin
II := FIdleWebModules.Count - 1;
while (II>=0) and not (TComponent(FIdleWebModules[II]) is MC) do
Dec(II);
if II >= 0 then
begin
M:=TCustomHTTPModule(FIdleWebModules[II]);
FIdleWebModules.Delete(II);
end;
end;
if (M=nil) then
M:=MC.Create(Self); {<- here comes the problem with the names when
another module needs to be created while this one is still working on a
request}
FWorkingWebModules.Add(M);
finally
FCriticalSection.Leave;
end;
I am gonna play with this a little bit more later today. Somehow we have
to make it work.
AB
Michael Van Canneyt wrote:
On Fri, 19 Sep 2008, ABorka wrote:
The thing is that for apache modules it is needed to have multiple
webmodules created for simultaneous requests coming from multiple people
browsing the web server. I was creating some pooling for the web modules
in fpapache.pp and simulated 2 concurrent requests when it happened.
If we change the name, will the next call find the changed named module
for reuse?
No.
Michael.
_______________________________________________
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