-
-
Notifications
You must be signed in to change notification settings - Fork 32
dlib.core.thread
Timur Gafarov edited this page Apr 26, 2017
·
6 revisions
This module provides a platform-independent multithreading API. For now, it supports Windows and Posix threads (pthreads). The interface is greatly inspired by core.thread from Phobos, but dlib.core.thread is fully GC-free and can be used with dlib.core.memory allocators.
Implementation notes:
- No TLS support, sorry. Any global variables should be marked with
__gsharedfor correct access from threads. - Internals of
Threadclass are platform-dependent, so be aware of that when inheriting.
Base class for creating threads.
Methods:
-
this(void function() func)- initialize with a function pointer -
this(void delegate() func)- initialize with a delegate -
void start()- start the thread. This method returns immediately -
void join()- wait for the thread to terminate -
bool isRunning()- check if the thread is running -
void terminate()- terminate the thread immediately. This functionality is unsafe, use with care.
void threadFunc()
{
// do some job
}
Thread t = New!Thread(&threadFunc);
t.start();