Server : Apache/2.4.18 (Ubuntu) System : Linux canvaswebdesign 3.13.0-71-generic #114-Ubuntu SMP Tue Dec 1 02:34:22 UTC 2015 x86_64 User : oppastar ( 1041) PHP Version : 7.0.33-0ubuntu0.16.04.15 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, Directory : /usr/share/doc/libfcgi-perl/examples/ |
Upload File : |
#!/usr/bin/perl use strict; use warnings; use threads; use threads::shared; use FCGI qw[]; use IO::Handle qw[]; use constant THREAD_COUNT => 5; my @count : shared = (0, (0) x THREAD_COUNT); sub worker { my $k = shift; my %env; my $in = IO::Handle->new; my $out = IO::Handle->new; my $err = IO::Handle->new; my $request = FCGI::Request($in, $out, $err, \%env); while ($request->Accept >= 0) { print $out "Content-type: text/html\r\n", "\r\n", "<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>"; { lock(@count); ++$count[$k]; for(my $i = 1; $i <= THREAD_COUNT; $i++) { print $out $count[$i]; print $out " "; } } $request->Flush; sleep(1); } } $_->join for map { threads->create(\&worker, $_) } 1..THREAD_COUNT;