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 | ||