[PATCHv2][BZ #13613] Allow a single-threaded process to cancel itself

Carlos O'Donell carlos@systemhalted.org
Thu May 10 20:17:00 GMT 2012


On Thu, May 10, 2012 at 4:02 PM, Siddhesh Poyarekar <siddhesh@redhat.com> wrote:
> Hi,
>
> Here's an updated patch to allow a single-threaded process to cancel
> itself. The code change is essentially the same, except that I have
> added comments in a number of places as per Carlos' suggestion to
> explain what multiple_threads is all about. I have also added test cases
> for pthread_testcancel, pthread_setcanceltype and
> pthread_setcancelstate in addition to the earlier test case. Patch
> attached.
>
> Regards,
> Siddhesh
>
>
> nptl/ChangeLog:
>
> 2012-05-11  Siddhesh Poyarekar  <siddhesh@redhat.com>
>            Jakub Jelinek <jakub@redhat.com>
>
>        [BZ #13613]
>        * Makefile (tests): Add test cases.
>        * descr.h (struct pthread): Add a comment describing
>        multiple_threads.
>        * pthreadP.h (__pthread_multiple_threads): Expand comment to
>        include single-process case.
>        * pthread_cancel.c (pthread_cancel): Enable multiple_threads
>        before setting cancelstate of the thread.
>        * sysdeps/unix/sysv/linux/libc_multiple_threads.c
>        (__libc_multiple_threads): Add explanatory comment.
>        * tst-cancel-self-cancelstate.c: New test case.
>        * tst-cancel-self-canceltype.c: Likewise.
>        * tst-cancel-self-cleanup.c: Supporting file for test cases.
>        * tst-cancel-self-testcancel.c: New test case.
>        * tst-cancel-self.c: Likewise.
>        * vars.c: Expand comment to include single-process case.

This looks good to me.

I assume you tested on x86_64 and had no regressions?

If that's the case then please check this in on Monday if nobody else objects.

Cheers,
Carlos.



More information about the Libc-alpha mailing list