![]() |
GemaCoreLib
The GeMA Core library
|
Declaration of the GmThreadManager class. More...
#include "gmCoreConfig.h"
#include "gmLog.h"
#include <assert.h>
#include <QWaitCondition>
#include <QMutex>
#include <QQueue>
Go to the source code of this file.
Classes | |
class | GmTLS< T, Align > |
A class that works together with GmThreadManager to provide thread local storage. More... | |
class | GmThreadTask |
Interface for a task executed by a thread manager thread. More... | |
class | GmThreadManager |
Thread manager used for handling parallel executions. More... | |
class | GmThread |
Our thread wrapper, specialized for running tasks from the thread manager queue. More... | |
Macros | |
#define | GmThreadLocal __thread |
Macro used to declare that a global / static variable has a per thread value (Thread Local Storage) More... | |
Enumerations | |
enum | GmThreadTaskResult { GM_THREAD_OK = 1, GM_THREAD_CANCELED = 2, GM_THREAD_ABORTED = 3 } |
Possible results for running a task. More... | |
Variables | |
GmThreadLocal int | GmThreadManagerThreadId |
Local storage for thread ids. More efficient than using QThread::currentThread() for then accessing the thread id stored in the GmThread object. More... | |
Declaration of the GmThreadManager class.
#define GmThreadLocal __thread |
Macro used to declare that a global / static variable has a per thread value (Thread Local Storage)
IMPORTANT: The variable must be created BEFORE any thread criation. Space is not allocated for this variable in EXISTING threads (at least on Windows). This might be a problem if a thread local variable is declared in a DLL (plugin) loaded AFTER thread creation.
enum GmThreadTaskResult |
GmThreadLocal int GmThreadManagerThreadId |
Local storage for thread ids. More efficient than using QThread::currentThread() for then accessing the thread id stored in the GmThread object.
Can not be a static member of GmThreadManager due to the GMC_API_EXPORT macro (thread variables can not have DLL interface).