use AnyEvent::Socket; use AnyEvent::Handle; use Parallel::ForkManager; # Some omitted initialization stuffs my $forker = Parallel::ForkManager->new(10); AnyEvent::Socket::tcp_server(undef, $port, sub { my ($fh, $host, $port) = @_; $forker->start and return; my $handle = AnyEvent::Handle->new( fh => $fh, keepalive => 1, on_connect => $on_connect_sub, on_read => $on_read_sub, on_error => $on_error_sub, ); }, ); AnyEvent->condvar->wait();