user/dev discussion of public-inbox itself
 help / color / mirror / code / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* [PATCH 2/3] watch: set %SIG for non-signalfd/kqueue
  2023-09-08 10:51  6% [PATCH 0/3] sig handling fixes for non-signalfd/kqueue Eric Wong
@ 2023-09-08 10:51  7% ` Eric Wong
  0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2023-09-08 10:51 UTC (permalink / raw)
  To: meta

We need to ensure there isn't a window where we lose $SIG{CHLD}
handling.  This is the second part in getting t/imapd.t to pass
the reload-after-setting-imap.pollInterval test

That said, I'm not entirely happy with the way -watch jumps
in and out of the event loop.  It's historical baggage from
the pre-event_loop days.
---
 script/public-inbox-watch | 1 +
 1 file changed, 1 insertion(+)

diff --git a/script/public-inbox-watch b/script/public-inbox-watch
index 75a9a36b..870cd31b 100755
--- a/script/public-inbox-watch
+++ b/script/public-inbox-watch
@@ -52,6 +52,7 @@ if ($watch) {
 		CHLD => \&PublicInbox::DS::enqueue_reap,
 	};
 	$sig->{QUIT} = $sig->{TERM} = $sig->{INT} = $quit;
+	local @SIG{keys %$sig} = values(%$sig); # for non-signalfd/kqueue
 
 	# --no-scan is only intended for testing atm, undocumented.
 	PublicInbox::DS::requeue($scan) if $do_scan;

^ permalink raw reply related	[relevance 7%]

* [PATCH 0/3] sig handling fixes for non-signalfd/kqueue
@ 2023-09-08 10:51  6% Eric Wong
  2023-09-08 10:51  7% ` [PATCH 2/3] watch: set %SIG " Eric Wong
  0 siblings, 1 reply; 2+ results
From: Eric Wong @ 2023-09-08 10:51 UTC (permalink / raw)
  To: meta

The first two fix t/imapd.t getting stuck when waiting for
-watch to reload after setting imap.pollInterval.  This only
affects non-Linux users without IO::KQueue installed.

3/3 doesn't fix anything exposed in tests, but is defense
against PID typos by someone trying to trigger a reload/rescan
on the toplevel -watch process.

Eric Wong (3):
  ds: unblock signals for non-signalfd/kqueue correctly
  watch: set %SIG for non-signalfd/kqueue
  watch: reset HUP + USR1 signal handlers in children

 lib/PublicInbox/DS.pm     | 16 ++++++++++------
 lib/PublicInbox/Watch.pm  |  7 ++++---
 script/public-inbox-watch |  3 ++-
 3 files changed, 16 insertions(+), 10 deletions(-)

^ permalink raw reply	[relevance 6%]

Results 1-2 of 2 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2023-09-08 10:51  6% [PATCH 0/3] sig handling fixes for non-signalfd/kqueue Eric Wong
2023-09-08 10:51  7% ` [PATCH 2/3] watch: set %SIG " Eric Wong

Code repositories for project(s) associated with this public inbox

	https://80x24.org/public-inbox.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).