From 439bf404b8fa125cf950dc1aa37838702c5353ea Mon Sep 17 00:00:00 2001 From: Siddhesh Poyarekar Date: Tue, 15 May 2012 09:41:27 +0530 Subject: Allow a single-threaded program to cancel itself There is nothing in the POSIX specification to disallow a single-threaded program from cancelling itself, so we forcibly enable multiple_threads to allow the next available cancellation point in the thread to run. Also added additional tests to cover various cancellation scenarios. --- nptl/pthreadP.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'nptl/pthreadP.h') diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h index 68c690e..24a2471 100644 --- a/nptl/pthreadP.h +++ b/nptl/pthreadP.h @@ -378,7 +378,9 @@ extern int *__libc_pthread_init (unsigned long int *ptr, const struct pthread_functions *functions) internal_function; -/* Variable set to a nonzero value if more than one thread runs or ran. */ +/* Variable set to a nonzero value either if more than one thread runs or ran, + or if a single-threaded process is trying to cancel itself. See + nptl/descr.h for more context on the single-threaded process case. */ extern int __pthread_multiple_threads attribute_hidden; /* Pointer to the corresponding variable in libc. */ extern int *__libc_multiple_threads_ptr attribute_hidden; -- cgit v1.1