From 108196adad5e70b6dd40dc431cd1033d44679483 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Mon, 1 Apr 2024 06:49:37 +0000 Subject: treewide: avoid getpid() for OnDestroy checks 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. --- script/public-inbox-init | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'script') 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) { -- cgit v1.2.3-24-ge0c7