about summary refs log tree commit homepage
path: root/script
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2024-04-01 06:49:37 +0000
committerEric Wong <e@80x24.org>2024-04-03 08:28:05 +0000
commit108196adad5e70b6dd40dc431cd1033d44679483 (patch)
tree6c9f2761263a5f188ef47d58b5c652a8f7ab2497 /script
parent9aba037ad27f1ec8e9c37580d23ea7a8944e8ae5 (diff)
downloadpublic-inbox-108196adad5e70b6dd40dc431cd1033d44679483.tar.gz
getpid() isn't cached by glibc nowadays and system calls are
more expensive due to CPU vulnerability mitigations.  To
ensure we switch to the new semantics properly, introduce
a new `on_destroy' function to simplify callers.
Furthermore, most OnDestroy correctness is often tied to the
process which creates it, so make the new API default to
guarded against running in subprocesses.

For cases which require running in all children, a new
PublicInbox::OnDestroy::all call is provided.
Diffstat (limited to 'script')
-rwxr-xr-xscript/public-inbox-init2
1 files changed, 1 insertions, 1 deletions
diff --git a/script/public-inbox-init b/script/public-inbox-init
index 8915cf31..cf6443f7 100755
--- a/script/public-inbox-init
+++ b/script/public-inbox-init
@@ -122,7 +122,7 @@ sysopen($lockfh, $lockfile, O_RDWR|O_CREAT|O_EXCL) or do {
         exit(255);
 };
 require PublicInbox::OnDestroy;
-my $auto_unlink = PublicInbox::OnDestroy->new($$, sub { unlink $lockfile });
+my $auto_unlink = PublicInbox::OnDestroy::on_destroy(sub { unlink $lockfile });
 my $perm = 0644 & ~umask;
 my %seen;
 if (-e $pi_config) {