[fpc-pascal] How to use FCGI in threaded mode?
silvioprog
silvioprog at gmail.com
Fri Jan 30 00:12:34 CET 2015
Oops, I forgot an additional information: i'm using Lazarus 1.2.6 / FPC
2.6.4 and FCGI as proxy (usgin native modules) in Apache 2.4 on Windos 7 64
bits.
On Thu, Jan 29, 2015 at 8:08 PM, silvioprog <silvioprog at gmail.com> wrote:
> Hello,
>
> Using the TCustomHTTPApplication class, I just set the "Threaded" property
> to true, and my application works in threaded mode. But, how to do the same
> in TCustomFCgiApplication class?
>
> To test it, compile and run the code below. After, open two tabs in your
> browser. In tab 1, open the "http://localhost/test?op=loop" URL, in tab
> 2, open the "http://localhost/test" URL. Notice that the tab 2 will wait
> 10 seconds to show the result.
>
> program project1;
>
> {$mode objfpc}{$H+}
>
> uses
> {$IFDEF UNIX}
> CThreads,
> {$ENDIF}
> CustWeb, HttpDefs, CustFCGI, Classes, SysUtils;
>
> type
>
> { TMyFCGIApplication }
>
> TMyFCGIApplication = class(TCustomFCgiApplication)
> protected
> function InitializeWebHandler: TWebHandler; override;
> end;
>
> { TMyFCGIHandler }
>
> TMyFCGIHandler = class(TFCGIHandler)
> public
> procedure HandleRequest(ARequest: TRequest; AResponse: TResponse);
> override;
> end;
>
> { TMyFCGIApplication }
>
> function TMyFCGIApplication.InitializeWebHandler: TWebHandler;
> begin
> Result := TMyFCGIHandler.Create(Self);
> end;
>
> { TMyFCGIHandler }
>
> procedure TMyFCGIHandler.HandleRequest(ARequest: TRequest; AResponse:
> TResponse);
> var
> I: Integer;
> begin
> if ARequest.QueryFields.Values['op'] = 'loop' then
> begin
> for I := 1 to 10 do
> Sleep(1000);
> AResponse.Contents.Text := 'Done!';
> end
> else
> AResponse.Contents.Text :=
> 'Now: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss.zzz', Now);
> end;
>
> begin
> with TMyFCGIApplication.Create(nil) do
> try
> Port := 8080;
> Run;
> finally
> Free;
> end;
> end.
>
> Thank you!
>
> --
> Silvio Clécio
> My public projects - github.com/silvioprog
>
--
Silvio Clécio
My public projects - github.com/silvioprog
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20150129/730f2e84/attachment.html>
More information about the fpc-pascal
mailing list