RTS: Consider using a separate signal handling thread.
Currently signals are generally handled by whatever thread they arrive at, whenever the signal arrives.
For GHC's own use of signal this mostly concerns the RTS timer signal, but it would also apply to other (potentially user-sent) signals.
The advantage of dealing with signals in a separate thread would primarily be that mutator(perhaps also GC) threads wouldn't get interrupted.
The one downside I can think of is that perhaps a function called via FFI might depend on catching signals in the thread it's run on. And given the nature of signals there might be other less obvious issues with such a change.
This requires more information, but this ticket will be a place to gather reasons for/against such a change.