| 184 | } |
| 185 | |
| 186 | bool MPTermTaskQ(MPTaskQ* taskq) |
| 187 | { |
| 188 | // workaround code for TMS |
| 189 | AcquireMPQLock(); // OSUninterruptibleSpinLock_Acquire(&taskq->spinlock); |
| 190 | //if ((uint32)taskq->taskReadyCount > 0 && taskq->state == MP_TASKQ_STATE_RUN) |
| 191 | if (taskq->state == MP_TASKQ_STATE_RUN) |
| 192 | { |
| 193 | taskq->state = MP_TASKQ_STATE_STOP; |
| 194 | } |
| 195 | |
| 196 | while (taskq->taskRunCount != 0) |
| 197 | { |
| 198 | // wait for tasks to finish |
| 199 | ReleaseMPQLock(); // OSUninterruptibleSpinLock_Release(&taskq->spinlock); |
| 200 | OSYieldThread(); |
| 201 | AcquireMPQLock(); // OSUninterruptibleSpinLock_Acquire(&taskq->spinlock); |
| 202 | } |
| 203 | ReleaseMPQLock(); // OSUninterruptibleSpinLock_Release(&taskq->spinlock); |
| 204 | return true; |
| 205 | } |
| 206 | |
| 207 | bool MPGetTaskQInfo(MPTaskQ* taskq, MPTaskQInfo* info) |
| 208 | { |
nothing calls this directly
no test coverage detected