Block SIGUSR1
Ignoring the signal makes it end up in the wrong thread sometimes (see commit message for details).
Closes #20 (closed)
WIP since it depends on !12 (merged)
Merge request reports
Activity
mentioned in merge request !15 (merged)
mentioned in merge request phosh!191 (closed)
Yes: https://github.com/wayland-project/wayland/blob/master/src/event-loop.c#L351 also check
man 7 signal
The man page doesn't really tell me much, but I conjecture that when a signal is blocked, then it's deferred, and it goes to another thread if possible. Since the main thread blocked it beforehand, then the other available thread will be the one which explicitly unblocked the signal, which is xwayland.
Is that right? The dance is not obvious, can we put a few more details somewhere near the change?
https://www.gnu.org/software/libc/manual/html_node/Blocking-Signals.html
In this case we block it in all threads except one so the signal ends up being processed there.
Then I need to know what else you expect. Someone looking at this would go
git blame git show adc7752f2526737756ccfedf7ce2dfaeeec35791
Then look at
wl_event_loop_add_signal()
documentation and see what the function's requirements are (and these are also written down in the commit message.I noticed a missing 'but' in the commit message. I guess it's clearer now.