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