Subversion Repositories HelenOS

Rev

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

Rev 4384 Rev 4386
Line 135... Line 135...
135
    call_t *db_call, *go_call;
135
    call_t *db_call, *go_call;
136
 
136
 
137
    ASSERT(THREAD);
137
    ASSERT(THREAD);
138
    ASSERT(TASK);
138
    ASSERT(TASK);
139
 
139
 
140
    /* Early check for undebugged tasks */
-
 
141
    if (!udebug_thread_precheck()) {
-
 
142
        return;
-
 
143
    }
-
 
144
 
-
 
145
    mutex_lock(&TASK->udebug.lock);
140
    mutex_lock(&TASK->udebug.lock);
146
 
141
 
147
    nsc = --TASK->udebug.not_stoppable_count;
142
    nsc = --TASK->udebug.not_stoppable_count;
148
 
143
 
149
    /* Lock order OK, THREAD->udebug.lock is after TASK->udebug.lock */
144
    /* Lock order OK, THREAD->udebug.lock is after TASK->udebug.lock */
Line 200... Line 195...
200
 * This is the point where the thread will block if it is stopped.
195
 * This is the point where the thread will block if it is stopped.
201
 * (As, by definition, a stopped thread must not leave its stoppable section).
196
 * (As, by definition, a stopped thread must not leave its stoppable section).
202
 */
197
 */
203
void udebug_stoppable_end(void)
198
void udebug_stoppable_end(void)
204
{
199
{
205
    /* Early check for undebugged tasks */
-
 
206
    if (!udebug_thread_precheck()) {
-
 
207
        return;
-
 
208
    }
-
 
209
 
-
 
210
restart:
200
restart:
211
    mutex_lock(&TASK->udebug.lock);
201
    mutex_lock(&TASK->udebug.lock);
212
    mutex_lock(&THREAD->udebug.lock);
202
    mutex_lock(&THREAD->udebug.lock);
213
 
203
 
214
    if (THREAD->udebug.active && THREAD->udebug.go == false) {
204
    if (THREAD->udebug.active && THREAD->udebug.go == false) {