chiark / gitweb /
prefork-interp: Break out forked_monitor
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 15 Aug 2022 16:41:39 +0000 (17:41 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 21 Aug 2022 20:21:10 +0000 (21:21 +0100)
prep for new protocol.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
perl/Prefork.pm

index b3c3acb4f8e3e2f498637831f4468ae22c18c026..bb39265b905f8c04b01dec568df50f3041275888 100644 (file)
@@ -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;