From ee8746e6db4dbe5a6cdb0d6080f467bc27693b3a Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 12 Feb 2023 03:12:03 +0000 Subject: t/lei-refresh-mail-sync: avoid kill+sleep loop While we can't waitpid() on daemonized process, we can abuse the lack of FD_CLOEXEC to detect a process death. This saves roughly 400ms for this slow test. --- lib/PublicInbox/TestCommon.pm | 3 +++ 1 file changed, 3 insertions(+) (limited to 'lib/PublicInbox/TestCommon.pm') diff --git a/lib/PublicInbox/TestCommon.pm b/lib/PublicInbox/TestCommon.pm index 1fe7931e..8a34e45a 100644 --- a/lib/PublicInbox/TestCommon.pm +++ b/lib/PublicInbox/TestCommon.pm @@ -480,6 +480,9 @@ sub start_script { my $pid = fork // die "fork: $!\n"; if ($pid == 0) { eval { PublicInbox::DS->Reset }; + for (@{delete($opt->{-CLOFORK}) // []}) { + close($_) or die "close $!"; + } # pretend to be systemd (cf. sd_listen_fds(3)) # 3 == SD_LISTEN_FDS_START my $fd; -- cgit v1.2.3-24-ge0c7