Changes in kernel/generic/src/proc/task.c [5bcf1f9:577f042a] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/proc/task.c
r5bcf1f9 r577f042a 384 384 { 385 385 task_id_t taskid; 386 int rc = copy_from_uspace(&taskid, uspace_taskid, sizeof(taskid)); 386 int rc; 387 388 rc = copy_from_uspace(&taskid, uspace_taskid, sizeof(taskid)); 387 389 if (rc != 0) 388 390 return (sysarg_t) rc; 389 391 390 392 return (sysarg_t) task_kill(taskid); 391 393 } … … 518 520 } 519 521 520 /** Kill the currently running task.521 *522 * @param notify Send out fault notifications.523 *524 * @return Zero on success or an error code from errno.h.525 *526 */527 void task_kill_self(bool notify)528 {529 /*530 * User space can subscribe for FAULT events to take action531 * whenever a task faults (to take a dump, run a debugger, etc.).532 * The notification is always available, but unless udebug is enabled,533 * that's all you get.534 */535 if (notify) {536 if (event_is_subscribed(EVENT_FAULT)) {537 /* Notify the subscriber that a fault occurred. */538 event_notify_3(EVENT_FAULT, LOWER32(TASK->taskid),539 UPPER32(TASK->taskid), (sysarg_t) THREAD);540 541 #ifdef CONFIG_UDEBUG542 /* Wait for a debugging session. */543 udebug_thread_fault();544 #endif545 }546 }547 548 irq_spinlock_lock(&tasks_lock, true);549 task_kill_internal(TASK);550 irq_spinlock_unlock(&tasks_lock, true);551 552 thread_exit();553 }554 555 /** Process syscall to terminate the current task.556 *557 * @param notify Send out fault notifications.558 *559 */560 sysarg_t sys_task_exit(sysarg_t notify)561 {562 task_kill_self(notify);563 564 /* Unreachable */565 return EOK;566 }567 568 522 static bool task_print_walker(avltree_node_t *node, void *arg) 569 523 {
Note:
See TracChangeset
for help on using the changeset viewer.