View source code
Display the source code in core/thread.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.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;

Parameters

NameDescription
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.

Returns

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

Authors

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

License

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