X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FMsg.pm;h=8be2fc1bf071d39dd464907de8397da7fdd27891;hb=8cdf937edf493134e69b2df1ec689839148f2d8f;hp=ae9c4c28699709a3f34a771d0062568f74323071;hpb=6e210063f1ef4e5c36ad04ba029b59711cc1eb04;p=spider.git diff --git a/perl/Msg.pm b/perl/Msg.pm index ae9c4c28..8be2fc1b 100644 --- a/perl/Msg.pm +++ b/perl/Msg.pm @@ -398,7 +398,9 @@ FINISH: &{$conn->{eproc}}($conn, $!) if exists $conn->{eproc}; $conn->disconnect; } else { - $conn->dequeue if exists $conn->{msg}; + unless ($conn->{disable_read}) { + $conn->dequeue if exists $conn->{msg}; + } } } @@ -444,6 +446,13 @@ sub close_all_clients } } +sub disable_read +{ + my $conn = shift; + set_event_handler ($conn->{sock}, read => undef); + return $_[0] ? $conn->{disable_read} = $_[0] : $_[0]; +} + # #---------------------------------------------------- # Event loop routines used by both client and server