Classes | |
| class | JobQueueInterface | 
| class | ServiceIOJobQueueInterface | 
| class | SerialJobQueueInterface | 
| class | JobQueueRef | 
| class | ServiceIOJobQueueRef | 
| class | SerialJobQueueRef | 
Namespaces | |
| maxon | |
Enumerations | |
| enum class | JOBQUEUETYPE {  MAINTHREAD , NONE , LOWESTPRIORITY , LOWPRIORITY , NORMALPRIORITY , SERVICEIO , THREADLESS }  | 
| enum class | JOBQUEUEMODE {  DEFAULT , SPIN_ON_IDLE , SLEEP_ON_IDLE , DETACH_THREADS , PSEUDO_THREADS , BLOCK_ON_WAIT , BLOCK_ON_WAIT_DETACH }  | 
Functions | |
| enum maxon::JOBQUEUETYPE | MAXON_ENUM_LIST (JOBQUEUETYPE) | 
| enum maxon::JOBQUEUEMODE | MAXON_ENUM_LIST (JOBQUEUEMODE) | 
Variables | |
| MAINTHREAD | |
| NONE | |
| LOWESTPRIORITY | |
| LOWPRIORITY | |
| NORMALPRIORITY | |
| SERVICEIO | |
| THREADLESS | |
| DEFAULT | |
| SPIN_ON_IDLE | |
| SLEEP_ON_IDLE | |
| DETACH_THREADS | |
| PSEUDO_THREADS | |
| BLOCK_ON_WAIT | |
| BLOCK_ON_WAIT_DETACH | |
| static const Int | JOBQUEUE_USEMAXIMUMTHREADS | 
| static const JobQueueInterface::Current | JOBQUEUE_CURRENT | 
| static const JobQueueInterface::None | JOBQUEUE_NONE | 
| MAINTHREAD | 
Jobs are executed on the main thread whenever the event loop can spare some time: there is only one queue of this type: use GetMainThreadQueue() to access it.
| NONE | 
Jobs are not enqueued but executed in the current context.
| LOWESTPRIORITY | 
Use lowest priority threads (worker threads have lowest priority and will not idle when waiting for new jobs or waiting for a group to finish).
| LOWPRIORITY | 
Use low priority threads.
| NORMALPRIORITY | 
Use normal priority threads (You should rarely have to create a queue with normal priority. Most of the time low priority is sufficient: This makes sure that you don't interfere with really important tasks and if available you still get all cpu power).
| SERVICEIO | 
Queue is used for IO and priority is adapted accordingly. Spinning on idle is not allowed.
| THREADLESS | 
| DEFAULT | 
Use default settings for the queue.
| SPIN_ON_IDLE | 
When there are no jobs threads will be spinning for a short moment before they go to sleep (low latency and highest performance but might unnecessary steals cycles from other threads).
| SLEEP_ON_IDLE | 
When there are no jobs threads will immediately go to sleep (results in higher latency).
| DETACH_THREADS | 
When there are no jobs the threads will immediately go to sleep and make themselves available to other queues (results in higher latency but less memory/resource usage).
| PSEUDO_THREADS | 
The workers behave like ordinary threads (JOBQUEUE_CURRENT points to the default queue and the threads don't have a worker thread index). 
| BLOCK_ON_WAIT | 
The workers block on wait. You must ensure that none of the jobs will ever have to wait for another job on the queue (which would deadlock).
| BLOCK_ON_WAIT_DETACH | 
The workers block on wait and make themselves available to other queues (results in higher latency but less memory/resource usage). You must ensure that none of the jobs will ever have to wait for another job on the queue (which would deadlock).