Moved examples to eg/
[catagits/fcgi2.git] / perl / eg / threaded.pl
CommitLineData
b3029f84 1#!/usr/bin/perl
34bfd355 2
3use FCGI;
4use Thread;
cebfd7c4 5use IO::Handle;
34bfd355 6
7use constant THREAD_COUNT => 5;
8
9sub doit {
10 my $k = shift;
11 my %env;
cebfd7c4 12 my $in = new IO::Handle;
13 my $out = new IO::Handle;
14 my $err = new IO::Handle;
34bfd355 15
6ff77aff 16 my $request = FCGI::Request($in, $out, $err, \%env);
34bfd355 17
6ff77aff 18 while ($request->Accept() >= 0) {
34bfd355 19 print $out
20 "Content-type: text/html\r\n",
21 "\r\n",
6ff77aff 22 "<title>FastCGI Hello! (multi-threaded perl, fcgiapp library)</title>",
23 "<h1>FastCGI Hello! (multi-threaded perl, fcgiapp library)</h1>",
34bfd355 24 "Request counts for ", THREAD_COUNT ," threads ",
25 "running on host <i>$env{SERVER_NAME}</i><P><CODE>";
26
34bfd355 27 {
28 lock(@count);
cebfd7c4 29
30 ++$count[$k];
31
34bfd355 32 for(my $i = 0; $i < THREAD_COUNT; ++$i) {
33 print $out $count[$i];
34 print $out " ";
35 }
36 }
d8cc97fb 37 $request->Flush();
34bfd355 38 sleep(1);
39 }
40}
41
42for ($t = 1; $t < THREAD_COUNT; ++$t) {
43 new Thread \&doit, $t;
44}
45doit(0);