bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Deliver pending signals unblocked by pthread_sigmask.


From: Samuel Thibault
Subject: Re: [PATCH] Deliver pending signals unblocked by pthread_sigmask.
Date: Fri, 3 Sep 2010 02:14:30 +0200
User-agent: Mutt/1.5.12-2006-07-14

Jeremie Koenig, le Fri 03 Sep 2010 01:38:29 +0200, a écrit :
> +  pending = ss->pending & ~ss->blocked;
> +
>    __pthread_spin_unlock (&ss->lock);
>  
> +  if (! err && pending)
> +    /* Send a message to the signal thread so it
> +       will wake up and check for pending signals.  */
> +    __msg_sig_post (_hurd_msgport, 0, 0, __mach_task_self ());

Mmm, more precisely, to follow the POSIX behavior AIUI, rather than
ss->pending it should be a process-global pending mask. E.g. if some
signal comes while all threads are masking it it should get recorded
there, and as soon as any of the threads unblocks the signal, it should
get it.

I guess we can however add the patch as such in the Debian package to at
least fix the single-thread case using pthread_sigmask.

Samuel



reply via email to

[Prev in Thread] Current Thread [Next in Thread]