summaryrefslogtreecommitdiff
path: root/kern/task.h
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2014-12-07 23:05:48 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2014-12-07 23:09:46 +0100
commitbe05086a4b9de42ba7c596905e8980d8713eae49 (patch)
tree579058e3ee11fcfe22d997720d795527a63556e8 /kern/task.h
parentcd76999cd1cf590b95df3e22d2eb2a7dad333499 (diff)
Fix pthread_create warning on translator termination
This was due to task_terminate not actually properly suspending threads before disable the task port, which was thus preventing pthread_create from being able to create a stack. Thanks Gabriele Giacone for finding out a reproducer of this. * kern/task.h (task_hold_locked): New declaration. * kern/task.c (task_hold): Move the locked part of the code into... (task_hold_locked): ... new function. (task_terminate): Call task_hold_locked just before deactivating the task. Call ipc_task_disable after waiting for threads to actually suspend with task_dowait.
Diffstat (limited to 'kern/task.h')
-rw-r--r--kern/task.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/kern/task.h b/kern/task.h
index 3c10dc0..2a4c28f 100644
--- a/kern/task.h
+++ b/kern/task.h
@@ -182,6 +182,7 @@ extern void consider_task_collect(void);
extern void task_init(void);
extern void task_reference(task_t);
extern void task_deallocate(task_t);
+extern void task_hold_locked(task_t);
extern kern_return_t task_hold(task_t);
extern kern_return_t task_dowait(task_t, boolean_t);
extern kern_return_t task_release(task_t);