Ignore:
File:
1 edited

Legend:

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

    r14ecd6c rf173404  
    4747void ipc_kbox_cleanup(void)
    4848{
    49         ipl_t ipl;
    5049        bool have_kb_thread;
    5150
     
    7877         * kbox thread to clean it up since sender != debugger.
    7978         */
    80         ipl = interrupts_disable();
    81         spinlock_lock(&TASK->lock);
     79        mutex_lock(&TASK->udebug.lock);
    8280        udebug_task_cleanup(TASK);
    83         spinlock_unlock(&TASK->lock);
    84         interrupts_restore(ipl);
    85        
     81        mutex_unlock(&TASK->udebug.lock);
     82
    8683        if (have_kb_thread) {
    8784                LOG("Join kb.thread.");
     
    126123        ipc_answer(&TASK->kb.box, call);
    127124
     125        mutex_lock(&TASK->kb.cleanup_lock);
     126
    128127        ipl = interrupts_disable();
    129128        spinlock_lock(&TASK->lock);
     
    136135
    137136                /* Only detach kbox thread unless already terminating. */
    138                 mutex_lock(&TASK->kb.cleanup_lock);
    139137                if (TASK->kb.finished == false) {
    140138                        /* Detach kbox thread so it gets freed from memory. */
     
    142140                        TASK->kb.thread = NULL;
    143141                }
    144                 mutex_unlock(&TASK->kb.cleanup_lock);
    145142
    146143                LOG("Phone list is empty.");
     
    153150        spinlock_unlock(&TASK->lock);
    154151        interrupts_restore(ipl);
     152
     153        mutex_unlock(&TASK->kb.cleanup_lock);
    155154}
    156155
Note: See TracChangeset for help on using the changeset viewer.