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
