MCPcopy Create free account
hub / github.com/OpenNI/OpenNI / xnSchedulerAddTaskInternal

Function xnSchedulerAddTaskInternal

Source/OpenNI/XnScheduler.cpp:68–87  ·  view source on GitHub ↗

Adds a task to the linked list. This must be called from within a critical section. */

Source from the content-addressed store, hash-verified

66
67/* Adds a task to the linked list. This must be called from within a critical section. */
68void xnSchedulerAddTaskInternal(XnScheduler* pScheduler, XnScheduledTask* pTask)
69{
70 // check if should be first in queue
71 if (pScheduler->pFirst == NULL || pScheduler->pFirst->nNextTime > pTask->nNextTime)
72 {
73 pTask->pNextTask = pScheduler->pFirst;
74 pScheduler->pFirst = pTask;
75 }
76 else
77 {
78 XnScheduledTask* pAfter = pScheduler->pFirst;
79
80 // move until place is found
81 while (pAfter->pNextTask != NULL && pAfter->nNextTime < pTask->nNextTime)
82 pAfter = pAfter->pNextTask;
83
84 pTask->pNextTask = pAfter->pNextTask;
85 pAfter->pNextTask = pTask;
86 }
87}
88
89/* This is the actual scheduler function. It is being run in its own thread. */
90XN_THREAD_PROC xnSchedulerThreadFunc(XN_THREAD_PARAM pThreadParam)

Callers 3

xnSchedulerThreadFuncFunction · 0.85
xnSchedulerAddTaskFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected