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

Reply via email to