Hi,
I'm having an issue when waiting on a pthread condition variable from the main 
thread and then a signal handler runs, which should cancel the wait since I 
have cancellation points enabled, however this did not happen. While debugging 
I see the main thread blocked when standing inside the signal handler. Here's 
the call graph at that point:

If I continue execution, the main thread never runs. I'm wondering if that call 
to nxsem_wait_uninterruptible is correct since it would seem that is exactly 
why this is not being canceled.

Note that I was initially signaling the condition variable from within the 
signal handler but this did not work either. However, looking at pthread 
documentation this is supposedly not supported: 
https://linux.die.net/man/3/pthread_cond_signal
(I'm not sure if that really applies to NuttX though).

Also, I'm mixing signals with threads because I'm using POSIX timers which 
require signals to be handled, so I'm stuck with this. I think supporting 
timerfd would be really useful (as I could then have a thread that waits on the 
fd of the timer).

Best,
Matias

Reply via email to