MCPcopy Create free account
hub / github.com/ObEngine/ObEngine / addWork

Method addWork

extlibs/soloud/src/core/soloud_thread.cpp:269–292  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

267 }
268
269 void Pool::addWork(PoolTask *aTask)
270 {
271 if (mThreadCount == 0)
272 {
273 aTask->work();
274 }
275 else
276 {
277 if (mWorkMutex) lockMutex(mWorkMutex);
278 if (mMaxTask == MAX_THREADPOOL_TASKS)
279 {
280 // If we're at max tasks, do the task on calling thread
281 // (we're in trouble anyway, might as well slow down adding more work)
282 if (mWorkMutex) unlockMutex(mWorkMutex);
283 aTask->work();
284 }
285 else
286 {
287 mTaskArray[mMaxTask] = aTask;
288 mMaxTask++;
289 if (mWorkMutex) unlockMutex(mWorkMutex);
290 }
291 }
292 }
293
294 PoolTask * Pool::getWork()
295 {

Callers

nothing calls this directly

Calls 2

lockMutexFunction · 0.85
unlockMutexFunction · 0.85

Tested by

no test coverage detected