Classes | |
| class | JobQueueInterface |
| class | ServiceIOJobQueueInterface |
| class | SerialJobQueueInterface |
| class | JobQueueRef |
| class | ServiceIOJobQueueRef |
| class | SerialJobQueueRef |
Namespaces | |
| maxon | |
Enumerations | |
| enum | JOBQUEUETYPE { MAINTHREAD, NONE, LOWESTPRIORITY, LOWPRIORITY, NORMALPRIORITY, SERVICEIO, THREADLESS } |
| enum | JOBQUEUEMODE { DEFAULT, SPIN_ON_IDLE, SLEEP_ON_IDLE, DETACH_THREADS, PSEUDO_THREADS } |
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 | |
| 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).