On Fri, Jun 29, 2018 at 04:21:17PM +0200, Alexander Bluhm wrote:
> The problem is that POSIX has signals that are sent to processes
> and signals sent to individual threads.  Our kernel does not support
> this properly.

Well, not exactly. POSIX has synchronous and asynchronous signals. I.e.
SIGFPE after a division by zero or SIGBUS/SIGSEGV are typically
synchronous traps thrown by the processing of the instructions of the
current thread. This signals are delivered to the current thread. All
other signals, i.e. those created as side effect of kill(2) are sent to
the process at large. Those signals are handled by the first thread that
doesn't have them masked. In that case, it should be put on the pending
list of the process and any unmasking operation should check the pending
list on whether a signal should be delivered delayed.

Joerg

Reply via email to