pthread_cancel / sleep change in behaviour

Erich Dollansky erichsfreebsdlist at alogt.com
Thu Sep 3 11:02:59 UTC 2015


Hi,

On Thu, 3 Sep 2015 13:43:51 +0300
Konstantin Belousov <kostikbel at gmail.com> wrote:

> On Thu, Sep 03, 2015 at 06:33:53PM +0800, Erich Dollansky wrote:
> > On Thu, 3 Sep 2015 11:19:47 +0300
> > Konstantin Belousov <kostikbel at gmail.com> wrote:
> > 
> > > On Thu, Sep 03, 2015 at 08:00:47AM +0800, Erich Dollansky wrote:
> > > > 
> > > > Is this change of behaviour a feature or a bug?
> > > 
> > > Provide a minimal example demonstrating the issue.
> > 
> > while preparing the example I found the source of the problem. We
> > have to block all signals for some reason. The handling for
> > 
> > signal (SIGTHR, SIG_IGN);
> > 
> > seems to have changed. The moment I remove above's line from the
> > code, the program works. There is no difference when the programs
> > runs on machines prior mid November 2014.
> > 
> Err, this is a bug, probably both in your program (user code must not
> twiddle with SIGCANCEL) and in libc. The later, I believe, was fixed

I did not know of this. I simply blocked all. As it worked when I
tested it those days, I forgot about it.

> in the HEAD r287300, which is not yet merged back to stable/10. The
> libthr has a protection disallowing user code manipulating SIGCANCEL,
> but due to the bug in libc signal(3) override the libthr measures.
> 
> Apply the r287300 to your src/ and try your unchanged program with
> updated libc.  But yes, SIGTHR/SIGCANCEL in the program is bug.
> 
I am just updating another machine. It might be already tomorrow when I
will come back to you.

Erich


More information about the freebsd-threads mailing list