summaryrefslogtreecommitdiffstats
path: root/cpukit/rtems/src/taskdelete.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2016-05-13 08:16:30 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2016-05-20 07:49:39 +0200
commit54550e048d3a49435912797d2024f80671e93267 (patch)
treebf49901187d98cf6a71975bdef7038d3ae0988c2 /cpukit/rtems/src/taskdelete.c
parentscore: Simplify _Thread_Life_action_handler() (diff)
downloadrtems-54550e048d3a49435912797d2024f80671e93267.tar.bz2
posix: Rework pthread_join()
Rework pthread_join() to use _Thread_Join(). Close #2402. Update #2555. Update #2626. Close #2714.
Diffstat (limited to 'cpukit/rtems/src/taskdelete.c')
-rw-r--r--cpukit/rtems/src/taskdelete.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/cpukit/rtems/src/taskdelete.c b/cpukit/rtems/src/taskdelete.c
index 5830793688..2e8381cb81 100644
--- a/cpukit/rtems/src/taskdelete.c
+++ b/cpukit/rtems/src/taskdelete.c
@@ -52,7 +52,15 @@ rtems_status_code rtems_task_delete(
executing = _Thread_Executing;
if ( the_thread == executing ) {
- _Thread_Exit( executing );
+ /*
+ * The Classic tasks are neither detached nor joinable. In case of
+ * self deletion, they are detached, otherwise joinable by default.
+ */
+ _Thread_Exit(
+ executing,
+ THREAD_LIFE_TERMINATING | THREAD_LIFE_DETACHED,
+ NULL
+ );
} else {
_Thread_Close( the_thread, executing );
}