package SOAP::Transport::HTTP::Daemon::ForkAfterProcessing; use strict; use vars qw(@ISA); use SOAP::Transport::HTTP; # Idea and implementation of Peter Fraenkel (Peter.Fraenkel@msdw.com) @ISA = qw(SOAP::Transport::HTTP::Daemon); sub handle { my $self = shift->new; CLIENT: while (my $c = $self->accept) { my $first = 1; while (my $r = $c->get_request) { $self->request($r); $self->SOAP::Transport::HTTP::Server::handle; if ($first && fork) { $first=0; $c->close; next CLIENT } $c->send_response($self->response) } $c->close; undef $c; } } 1;