|
From: | Paul Eggert |
Subject: | Re: kqueue in Emacs 25.1? |
Date: | Sat, 7 Nov 2015 22:33:14 -0800 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 |
Wolfgang Jenkner wrote:
one difference between libinotify-kqueue and native GNU/Linux inotify is that libinotify uses a separate worker-thread. This is a difference that can become visible sometimes (at least in the current implementation), e.g., the worker thread doesn't block most signals, so the effect of signal handlers can be delayed until control returns to the main thread.
Can you elaborate on why this is an issue? If the worker thread doesn't block (say) SIGCHLD, the thread should call deliver_child_signal, which calls deliver_process_signal, which (a) calls pthread_sigmask to arrange for the worker thread to block SIGCHLD indefinitely so that the failure-to-block problem doesn't recur, and (b) calls pthread_kill (main_thread, SIGCHLD) to forward the signal to the main thread just this once. When you write "can be delayed" are you referring to the delay in (b), or to some other delay? And what are the symptoms of the delay?
[Prev in Thread] | Current Thread | [Next in Thread] |