summaryrefslogtreecommitdiffstats
path: root/cpukit/posix/src/pthread.c
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/posix/src/pthread.c')
-rw-r--r--cpukit/posix/src/pthread.c30
1 files changed, 23 insertions, 7 deletions
diff --git a/cpukit/posix/src/pthread.c b/cpukit/posix/src/pthread.c
index 3a94245c98..cae1bf2380 100644
--- a/cpukit/posix/src/pthread.c
+++ b/cpukit/posix/src/pthread.c
@@ -154,8 +154,14 @@ void _POSIX_Threads_Manager_initialization(
number_of_initialization_tasks;
_POSIX_Threads_User_initialization_tasks = user_tasks;
+ /*
+ * There may not be any POSIX initialization threads configured.
+ */
+
+#if 0
if ( user_tasks == NULL || number_of_initialization_tasks == 0 )
_Internal_error_Occurred( INTERNAL_ERROR_POSIX_API, TRUE, EINVAL );
+#endif
_Objects_Initialize_information(
&_POSIX_Threads_Information,
@@ -498,18 +504,16 @@ int pthread_attr_setdetachstate(
return 0;
}
-#ifdef NOT_IMPLEMENTED_YET
-
/*PAGE
*
* 16.1.2 Thread Creation, P1003.1c/Draft 10, p. 144
*/
int pthread_create(
- pthread_t *thread,
- const pthread_attr_t *attr,
- void (*start_routine)( void * ),
- void *arg
+ pthread_t *thread,
+ const pthread_attr_t *attr,
+ void *(*start_routine)( void * ),
+ void *arg
)
{
const pthread_attr_t *local_attr;
@@ -535,6 +539,8 @@ int pthread_create(
#endif
int detachstate;
#endif
+
+ return POSIX_NOT_IMPLEMENTED();
}
/*PAGE
@@ -562,7 +568,17 @@ int pthread_detach(
return POSIX_NOT_IMPLEMENTED();
}
-#endif
+/*PAGE
+ *
+ * 16.1.5.1 Thread Termination, p1003.1c/Draft 10, p. 150
+ */
+
+void pthread_exit(
+ void *value_ptr
+)
+{
+ POSIX_NOT_IMPLEMENTED();
+}
/*PAGE
*