299,15 → 299,6 |
if (destroy_task) |
task_destroy(t->task); |
|
/* |
* If the thread had a userspace context, free up its kernel_uarg |
* structure. |
*/ |
if (t->flags & THREAD_FLAG_USPACE) { |
ASSERT(t->thread_arg); |
free(t->thread_arg); |
} |
|
slab_free(thread_slab, t); |
} |
|
646,8 → 637,7 |
/** Process syscall to create new thread. |
* |
*/ |
unative_t sys_thread_create(uspace_arg_t *uspace_uarg, char *uspace_name, |
thread_id_t *uspace_thread_id) |
unative_t sys_thread_create(uspace_arg_t *uspace_uarg, char *uspace_name, thread_id_t *uspace_thread_id) |
{ |
thread_t *t; |
char namebuf[THREAD_NAME_BUFLEN]; |
670,8 → 660,8 |
if (t) { |
thread_ready(t); |
if (uspace_thread_id != NULL) |
return (unative_t) copy_to_uspace(uspace_thread_id, |
&t->tid, sizeof(t->tid)); |
return (unative_t) copy_to_uspace(uspace_thread_id, &t->tid, |
sizeof(t->tid)); |
else |
return 0; |
} else |