Subversion Repositories HelenOS

Rev

Rev 3600 | Rev 3603 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3600 Rev 3601
Line 140... Line 140...
140
    mutex_lock(&t->udebug.lock);
140
    mutex_lock(&t->udebug.lock);
141
 
141
 
142
    /* The big task mutex is no longer needed. */
142
    /* The big task mutex is no longer needed. */
143
    mutex_unlock(&TASK->udebug.lock);
143
    mutex_unlock(&TASK->udebug.lock);
144
 
144
 
145
    if (!t->udebug.stop != being_go) {
145
    if (t->udebug.go != being_go) {
146
        /* Not in debugging session or undesired GO state. */
146
        /* Not in debugging session or undesired GO state. */
147
        mutex_unlock(&t->udebug.lock);
147
        mutex_unlock(&t->udebug.lock);
148
        return EINVAL;
148
        return EINVAL;
149
    }
149
    }
150
 
150
 
Line 289... Line 289...
289
    if (rc != EOK) {
289
    if (rc != EOK) {
290
        return rc;
290
        return rc;
291
    }
291
    }
292
 
292
 
293
    t->udebug.go_call = call;
293
    t->udebug.go_call = call;
294
    t->udebug.stop = false;
294
    t->udebug.go = true;
295
    t->udebug.cur_event = 0;    /* none */
295
    t->udebug.cur_event = 0;    /* none */
296
 
296
 
297
    /*
297
    /*
298
     * Neither t's lock nor threads_lock may be held during wakeup.
298
     * Neither t's lock nor threads_lock may be held during wakeup.
299
     */
299
     */
Line 327... Line 327...
327
    if (rc != EOK) {
327
    if (rc != EOK) {
328
        return rc;
328
        return rc;
329
    }
329
    }
330
 
330
 
331
    /* Take GO away from the thread. */
331
    /* Take GO away from the thread. */
332
    t->udebug.stop = true;
332
    t->udebug.go = false;
333
 
333
 
334
    if (!t->udebug.stoppable) {
334
    if (t->udebug.stoppable != true) {
335
        /* Answer will be sent when the thread becomes stoppable. */
335
        /* Answer will be sent when the thread becomes stoppable. */
336
        _thread_op_end(t);
336
        _thread_op_end(t);
337
        return 0;
337
        return 0;
338
    }
338
    }
339
 
339