/branches/tracing/kernel/generic/src/interrupt/interrupt.c |
---|
86,8 → 86,13 |
void exc_dispatch(int n, istate_t *istate) |
{ |
ASSERT(n < IVT_ITEMS); |
if (THREAD) THREAD->uspace_state = istate; |
exc_table[n].f(n + IVT_FIRST, istate); |
if (THREAD) THREAD->uspace_state = NULL; |
/* This is a safe place to exit exiting thread */ |
if (THREAD && THREAD->interrupted && istate_from_uspace(istate)) |
thread_exit(); |