On Sun, Jul 09, 2017 at 10:18:05PM +0200, Joan Lledó wrote:
> However, after all the pending threads still were not being canceled.
> The problem here was that the standard function where the threads
> where blocked on, pthread_cond_wait(), didn't respond to cancel
> requests from hurd_thread_cancel(). It was strange, because
> pthread_cond_wait() is a valid cancellation point. But in the Hurd
> servers we need to call our own non-standard version,
> pthread_hurd_cond_wait_np()[7], which reacts to requests from
> hurd_thread_cancel() and stops blocking the thread.

Cancellability and interruptibility are two different things. In
particular, note how POSIX explicitely mentions that "These functions
shall not return an error code of [EINTR]."

-- 
Richard Braun

Reply via email to