Net::Server::Thread(3p)

NAME
Net::Server::Thread - Net::Server personality

SYNOPSIS
    use base qw(Net::Server::Thread);

    sub process_request {
        #...code...
    }

    __PACKAGE__->run();

DESCRIPTION
Please read the pod on Net::Server first. This module is a personality, or extension, or sub class, of the Net::Server module.

This personality binds to one or more ports and then waits for a client connection. When a connection is received, the server spawns a new thread. The thread handles the request and then closes.

Because this Net::Server flavor spawns and destroys a thread for each request, it really should only be used where the processing of each request may be lengthy or involved. If short and light request are used, perl may not voluntarily give back the used memory. This is highly system dependent.

ARGUMENTS

check_for_dead
    Number of seconds to wait before looking for dead children. This only takes place if the maximum number of child processes (max_servers) has been reached. Default is 60 seconds.

max_servers
    The maximum number of children to fork. The server will not accept connections until there are free children. Default is 256 children.

CONFIGURATION FILE
See Net::Server.

PROCESS FLOW
Process flow follows Net::Server until the post_accept phase. At this point a child is forked. The parent is immediately able to wait for another request. The child handles the request and then exits.

HOOKS
The Fork server has the following hooks in addition to the hooks provided by the Net::Server base class. See Net::Server

"$self->pre_accept_hook()"
    This hook occurs just before the accept is called.

"$self->pre_thread_hook()"
    This hook occurs just after accept but before the fork.

"$self->post_accept_hook()"
    This hook occurs in the child after the accept and fork.

TO DO
See Net::Server

AUTHOR
Paul Seamons <paul@seamons.com>

SEE ALSO
Please see also Net::Server::INET, Net::Server::Fork, Net::Server::PreFork, Net::Server::PreForkSimple, Net::Server::MultiType, Net::Server::SIG Net::Server::Single