Changes in kernel/generic/src/ipc/kbox.c [0016674:48bcf49] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/ipc/kbox.c
r0016674 r48bcf49 206 206 * cleanup code. 207 207 * 208 * @param[out] out_phone Phone capability handle on success. 209 * @return Error code. 210 * 211 */ 212 int ipc_connect_kbox(task_id_t taskid, cap_handle_t *out_phone) 208 * @return Phone capability handle on success, or negative error code. 209 * 210 */ 211 int ipc_connect_kbox(task_id_t taskid) 213 212 { 214 213 irq_spinlock_lock(&tasks_lock, true); … … 232 231 } 233 232 234 if (task->kb.finished ) {233 if (task->kb.finished != false) { 235 234 mutex_unlock(&task->kb.cleanup_lock); 236 235 return EINVAL; 237 236 } 238 237 239 /* Create a kbox thread if necessary. */240 if (task->kb.thread == NULL) {241 thread_t *kb_thread = thread_create(kbox_thread_proc, NULL, task,242 THREAD_FLAG_NONE, "kbox");243 244 if (!kb_thread) {245 mutex_unlock(&task->kb.cleanup_lock);246 return ENOMEM;247 }248 249 task->kb.thread = kb_thread;250 thread_ready(kb_thread);251 }252 253 /* Allocate a new phone. */254 238 cap_handle_t phone_handle = phone_alloc(TASK); 255 239 if (phone_handle < 0) { … … 264 248 (void) ipc_phone_connect(phone_obj->phone, &task->kb.box); 265 249 250 if (task->kb.thread != NULL) { 251 mutex_unlock(&task->kb.cleanup_lock); 252 return phone_handle; 253 } 254 255 /* Create a kbox thread */ 256 thread_t *kb_thread = thread_create(kbox_thread_proc, NULL, task, 257 THREAD_FLAG_NONE, "kbox"); 258 if (!kb_thread) { 259 mutex_unlock(&task->kb.cleanup_lock); 260 return ENOMEM; 261 } 262 263 task->kb.thread = kb_thread; 264 thread_ready(kb_thread); 265 266 266 mutex_unlock(&task->kb.cleanup_lock); 267 *out_phone = phone_handle;268 return EOK;267 268 return phone_handle; 269 269 } 270 270
Note:
See TracChangeset
for help on using the changeset viewer.