X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FDaemon.pm;h=c3199cd24f0a9859261408fe479edf535b916544;hb=efdca7b8e80e74501d14eb0bee74f78309db287b;hp=f0be034c57ef8054f65ac5bf374b61c71d599b4a;hpb=5186d1f71d83ad84104c93da6bd27908a1610403;p=public-inbox.git diff --git a/lib/PublicInbox/Daemon.pm b/lib/PublicInbox/Daemon.pm index f0be034c..c3199cd2 100644 --- a/lib/PublicInbox/Daemon.pm +++ b/lib/PublicInbox/Daemon.pm @@ -137,6 +137,7 @@ sub worker_quit () { # killing again terminates immediately: exit unless @listeners; + $_->close foreach @listeners; # call Danga::Socket::close @listeners = (); # give slow clients 30s to finish reading/writing whatever @@ -401,7 +402,9 @@ sub daemon_loop ($$) { $SIG{USR1} = *reopen_logs; $SIG{HUP} = $refresh; # this calls epoll_create: - PublicInbox::Listener->new($_, $post_accept) for @listeners; + @listeners = map { + PublicInbox::Listener->new($_, $post_accept) + } @listeners; Danga::Socket->EventLoop; $parent_pipe = undef; }