summaryrefslogtreecommitdiff
path: root/cpukit/posix/src/pthreadjoin.c
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/posix/src/pthreadjoin.c')
-rw-r--r--cpukit/posix/src/pthreadjoin.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/cpukit/posix/src/pthreadjoin.c b/cpukit/posix/src/pthreadjoin.c
index 26d53285dc..0b7e103614 100644
--- a/cpukit/posix/src/pthreadjoin.c
+++ b/cpukit/posix/src/pthreadjoin.c
@@ -1,7 +1,7 @@
/*
* 16.1.3 Wait for Thread Termination, P1003.1c/Draft 10, p. 147
*
- * COPYRIGHT (c) 1989-2007.
+ * COPYRIGHT (c) 1989-2011.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -32,6 +32,7 @@ int pthread_join(
Objects_Locations location;
void *return_pointer;
+on_EINTR:
the_thread = _Thread_Get( thread, &location );
switch ( location ) {
@@ -66,6 +67,9 @@ int pthread_join(
}
_Thread_Enable_dispatch();
+ if ( _Thread_Executing->Wait.return_code == EINTR )
+ goto on_EINTR;
+
if ( value_ptr )
*value_ptr = return_pointer;
return 0;