use FCGI;
use Thread;
+use IO::Handle;
use constant THREAD_COUNT => 5;
sub doit {
my $k = shift;
my %env;
- my $in = do { local *FH };
- my $out = do { local *FH };
- my $err = do { local *FH };
+ my $in = new IO::Handle;
+ my $out = new IO::Handle;
+ my $err = new IO::Handle;
- my $request = FCGI::request();
+ my $request = FCGI::Request($in, $out, $err, \%env);
- while ($request->accept(\$in, \$out, \$err, \%env) >= 0) {
+ while ($request->Accept() >= 0) {
print $out
"Content-type: text/html\r\n",
"\r\n",
- "<title>FastCGI Hello! (multi-threaded C, fcgiapp library)</title>",
- "<h1>FastCGI Hello! (multi-threaded C, fcgiapp library)</h1>",
+ "<title>FastCGI Hello! (multi-threaded perl, fcgiapp library)</title>",
+ "<h1>FastCGI Hello! (multi-threaded perl, fcgiapp library)</h1>",
"Request counts for ", THREAD_COUNT ," threads ",
"running on host <i>$env{SERVER_NAME}</i><P><CODE>";
- ++$count[$k];
-
{
lock(@count);
+
+ ++$count[$k];
+
for(my $i = 0; $i < THREAD_COUNT; ++$i) {
print $out $count[$i];
print $out " ";
}
}
- $request->flush();
+ $request->Flush();
sleep(1);
}
}