HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux aritmodecarnaval.es 5.15.0-79-generic #86-Ubuntu SMP Mon Jul 10 16:07:21 UTC 2023 x86_64
User: www-data (33)
PHP: 7.4.33
Disabled: 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_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //usr/share/doc/libfcgi-perl/examples/threaded.pl
#!/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;