Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/ipc/kbox.c

    rf173404 r14ecd6c  
    4747void ipc_kbox_cleanup(void)
    4848{
     49        ipl_t ipl;
    4950        bool have_kb_thread;
    5051
     
    7778         * kbox thread to clean it up since sender != debugger.
    7879         */
    79         mutex_lock(&TASK->udebug.lock);
     80        ipl = interrupts_disable();
     81        spinlock_lock(&TASK->lock);
    8082        udebug_task_cleanup(TASK);
    81         mutex_unlock(&TASK->udebug.lock);
    82 
     83        spinlock_unlock(&TASK->lock);
     84        interrupts_restore(ipl);
     85       
    8386        if (have_kb_thread) {
    8487                LOG("Join kb.thread.");
     
    123126        ipc_answer(&TASK->kb.box, call);
    124127
    125         mutex_lock(&TASK->kb.cleanup_lock);
    126 
    127128        ipl = interrupts_disable();
    128129        spinlock_lock(&TASK->lock);
     
    135136
    136137                /* Only detach kbox thread unless already terminating. */
     138                mutex_lock(&TASK->kb.cleanup_lock);
    137139                if (TASK->kb.finished == false) {
    138140                        /* Detach kbox thread so it gets freed from memory. */
     
    140142                        TASK->kb.thread = NULL;
    141143                }
     144                mutex_unlock(&TASK->kb.cleanup_lock);
    142145
    143146                LOG("Phone list is empty.");
     
    150153        spinlock_unlock(&TASK->lock);
    151154        interrupts_restore(ipl);
    152 
    153         mutex_unlock(&TASK->kb.cleanup_lock);
    154155}
    155156
Note: See TracChangeset for help on using the changeset viewer.