To get the behavior POSIX specifies ("If a signal is delivered to a
thread waiting for a mutex, upon return from the signal handler the
thread resumes waiting for the mutex as if it was not interrupted.")
would require additional handling, such as (I'm guessing) checking the
cause of the wake-up and looping if necessary. Admittedly I don't know
enough about the subject and the internals to propose a specific
solution yet.

I think that you could set a signal mask to block all signals except the one that wakes up the timed wait and the one that could cancel the task/thread.

There are some complexities and the possibility to break things. If you want, you could just create an issue with all of the relevant information and let it pend of awhile.  I don't think there is any rush to change this behavior, is there?


Reply via email to