Blocked signal still delivered if it arrived while unblocked and was delayed
If two SIGPROF signals arrive while in DR code and that signal is unblocked at the time, both will be delivered once we go back to the cache. If the app's handler goes back to dispatch for any reason, the 2nd signal will be delivered, interrupting the app's handler, despite the app not setting SA_NODEFER and thus SIGPROF is blocked while in the handler and there should be no nesting.
Here's the problem:
/* We do not re-check whether blocked if it was unblocked at
* receive time, to properly handle sigsuspend (i#1340).
*/
From ae43e2a1 for sigsuspend #1340 (closed)