99 |
debug ("Creating task cap for 0x%x:", task_id); |
debug ("Creating task cap for 0x%x:", task_id); |
100 |
|
|
101 |
err = task_alloc (task_id, nr_threads, threads, &obj); |
err = task_alloc (task_id, nr_threads, threads, &obj); |
|
|
|
102 |
if (err) |
if (err) |
103 |
panic ("task_alloc: %i\n", err); |
panic ("task_alloc: %i\n", err); |
104 |
|
|
105 |
hurd_cap_obj_unlock (obj); |
hurd_cap_obj_unlock (obj); |
106 |
|
|
107 |
|
err = task_id_enter ((task_t) obj); |
108 |
|
if (err) |
109 |
|
panic ("task_id_enter: %i\n", err); |
110 |
|
|
111 |
err = hurd_cap_bucket_inject (bucket, obj, task_id, &cap); |
err = hurd_cap_bucket_inject (bucket, obj, task_id, &cap); |
112 |
if (err) |
if (err) |
113 |
panic ("hurd_cap_bucket_inject: %i\n", err); |
panic ("hurd_cap_bucket_inject: %i\n", err); |
208 |
|
|
209 |
/* No root object is provided by the task server. */ |
/* No root object is provided by the task server. */ |
210 |
/* FIXME: Use a worker timeout. */ |
/* FIXME: Use a worker timeout. */ |
211 |
|
/* FIXME: Use a no-sender callback that deletes the resources from a |
212 |
|
dead task and turns it into a zombie or removes it from the hash |
213 |
|
table completely. */ |
214 |
err = hurd_cap_bucket_manage_mt (bucket, NULL, 0, 0); |
err = hurd_cap_bucket_manage_mt (bucket, NULL, 0, 0); |
215 |
if (err) |
if (err) |
216 |
debug ("bucket_manage_mt failed: %i\n", err); |
debug ("bucket_manage_mt failed: %i\n", err); |