View source code
Display the source code in core/thread/osthread.d from which this page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone.

Function core.thread.osthread.createLowLevelThread

Create a thread not under control of the runtime, i.e. TLS module constructors are not run and the GC does not suspend it during a collection.

ulong createLowLevelThread (
  void delegate() dg,
  uint stacksize = 0u,
  void delegate() cbDllUnload = cast(void delegate() nothrow)null
) nothrow @nogc;


dg delegate to execute in the created thread.
stacksize size of the stack of the created thread. The default of 0 will select the platform-specific default size.
cbDllUnload Windows only: if running in a dynamically loaded DLL, this delegate will be called if the DLL is supposed to be unloaded, but the thread is still running. The thread must be terminated via joinLowLevelThread by the callback.


the platform specific thread ID of the new thread. If an error occurs, ThreadID.init is returned.


Sean Kelly, Walter Bright, Alex Rønne Petersen, Martin Nowak


Distributed under the Boost Software License 1.0. (See accompanying file LICENSE)