about summary refs log tree commit diff
path: root/nptl/pthreadP.h
diff options
context:
space:
mode:
authorSiddhesh Poyarekar <siddhesh@redhat.com>2012-05-15 09:41:27 +0530
committerSiddhesh Poyarekar <siddhesh@redhat.com>2012-05-15 09:41:57 +0530
commit439bf404b8fa125cf950dc1aa37838702c5353ea (patch)
treeda5913033bcfa18987da0aabf69ad99b751772a3 /nptl/pthreadP.h
parent2949684c162a4413e42249d6b2ad554cb468b5be (diff)
downloadglibc-439bf404b8fa125cf950dc1aa37838702c5353ea.tar.gz
glibc-439bf404b8fa125cf950dc1aa37838702c5353ea.tar.xz
glibc-439bf404b8fa125cf950dc1aa37838702c5353ea.zip
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.
Diffstat (limited to 'nptl/pthreadP.h')
-rw-r--r--nptl/pthreadP.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index 68c690e88e..24a24717fc 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;