/trunk/kernel/generic/include/ipc/event_types.h |
---|
42,6 → 42,11 |
EVENT_END |
} event_type_t; |
typedef enum wait_type { |
TASK_CREATE = 0, |
TASK_DESTROY |
} wait_type_t; |
#endif |
/** @} |
/trunk/kernel/generic/src/proc/task.c |
---|
199,6 → 199,13 |
spinlock_unlock(&tasks_lock); |
interrupts_restore(ipl); |
/* |
* Notify about task creation. |
*/ |
if (event_is_subscribed(EVENT_WAIT)) |
event_notify_3(EVENT_WAIT, TASK_CREATE, LOWER32(ta->taskid), |
UPPER32(ta->taskid)); |
return ta; |
} |
235,7 → 242,8 |
* Notify about task destruction. |
*/ |
if (event_is_subscribed(EVENT_WAIT)) |
event_notify_2(EVENT_WAIT, LOWER32(t->taskid), UPPER32(t->taskid)); |
event_notify_3(EVENT_WAIT, TASK_DESTROY, LOWER32(t->taskid), |
UPPER32(t->taskid)); |
free(t); |
TASK = NULL; |