From: Eric Wong Date: Sun, 10 Jan 2021 12:15:05 +0000 (+0000) Subject: ipc: eliminate ipc_worker_stop method X-Git-Tag: v1.7.0~1391 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=e82347d7990694c958a3d66ff8ca25b0b26560a3;p=public-inbox.git ipc: eliminate ipc_worker_stop method We can just EOF the pipe, and instead rely on per-class error handling to deal with uncommitted transactions and what not. --- diff --git a/lib/PublicInbox/IPC.pm b/lib/PublicInbox/IPC.pm index 27ea90de..0c5205c1 100644 --- a/lib/PublicInbox/IPC.pm +++ b/lib/PublicInbox/IPC.pm @@ -136,12 +136,6 @@ sub ipc_worker_reap { # dwaitpid callback sub ipc_atfork_parent {} sub ipc_atfork_child {} -# should only be called inside the worker process -sub ipc_worker_exit { - my (undef, $code) = @_; - exit($code); -} - # idempotent, can be called regardless of whether worker is active or not sub ipc_worker_stop { my ($self) = @_; @@ -152,10 +146,8 @@ sub ipc_worker_stop { return; # idempotent } die 'no PID with IPC pipes' unless $pid; - _send_rec($w_req, [ undef, 'ipc_worker_exit', 0 ]); $w_req = $r_res = undef; - # allow any sibling to send ipc_worker_exit, but siblings can't wait return if $$ != $ppid; dwaitpid($pid, \&ipc_worker_reap, $self); }