From: Ian Jackson Date: Mon, 15 Aug 2022 16:41:39 +0000 (+0100) Subject: prefork-interp: Break out forked_monitor X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=c1180e3390c4b91104a90fdbcb404f699b94a678;p=chiark-utils.git prefork-interp: Break out forked_monitor prep for new protocol. Signed-off-by: Ian Jackson --- diff --git a/perl/Prefork.pm b/perl/Prefork.pm index b3c3acb..bb39265 100644 --- a/perl/Prefork.pm +++ b/perl/Prefork.pm @@ -54,6 +54,13 @@ sub become_monitor () { _exit(0); } +sub forked_monitor () { + close LISTEN; + eval { protocol_exchange(); 1; } + or fail_log("protocol exchange failed: $@"); + return become_monitor(); +} + sub close_call_fds () { foreach (@call_fds) { next if $_ <= 2; @@ -216,10 +223,7 @@ sub initialisation_complete { $child = fork // fail_log("fork for accepted call failed: $!"); if (!$child) { #---- monitor [1] ---- - close LISTEN; - eval { protocol_exchange(); 1; } - or fail_log("protocol exchange failed: $@"); - return become_monitor(); + forked_monitor(); } close(CALL); $errcount = 0;