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