| 90 | } |
| 91 | |
| 92 | int ThreadPool::acquireWorkIndex() { |
| 93 | std::lock_guard<std::mutex> _l(mQueueMutex); |
| 94 | for (int i = 0; i < MNN_THREAD_POOL_MAX_TASKS; ++i) { |
| 95 | if (mTaskAvailable[i]) { |
| 96 | mTaskAvailable[i] = false; |
| 97 | return i; |
| 98 | } |
| 99 | } |
| 100 | return -1; |
| 101 | } |
| 102 | void ThreadPool::releaseWorkIndex(int index) { |
| 103 | if (index < 0 || index >= MNN_THREAD_POOL_MAX_TASKS) { |
| 104 | return; |
no outgoing calls