Make the PRINT method return the number of bytes written.
[catagits/fcgi2.git] / perl / threaded.PL
index c632bb6..f8a8c62 100644 (file)
@@ -9,37 +9,39 @@ __END__
 
 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);
     }
 }