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 a local clone.

rt.tlsgc

Authors:
Martin Nowak

Source rt/tlsgc.d

struct Data;
Per thread record to store thread associated data for garbage collection.
nothrow @nogc void* init();
Initialization hook, called FROM each thread. No assumptions about module initialization state should be made.
nothrow @nogc void destroy(void* data);
Finalization hook, called FOR each thread. No assumptions about module initialization state should be made.
nothrow void scan(void* data, scope ScanDg dg);
GC scan hook, called FOR each thread. Can be used to scan additional thread local memory.
nothrow void processGCMarks(void* data, scope IsMarkedDg dg);
GC sweep hook, called FOR each thread. Can be used to free additional thread local memory or associated data structures. Note that only memory allocated from the GC can have marks.