Menu

- Learn
- Documentation
  - Language Reference
  - Library Reference
  - Command-line Reference
  - Feature Overview
  - Articles
- Downloads
- Packages
- Community
  - Blog
  - Orgs using D
  - Twitter
  - Calendar
  - Forums
  - IRC
  - Community Discord
  - Wiki
  - GitHub
  - Issues
  - Get involved
  - Contributors
  - Foundation
  - Security Team
  - Donate
  - Sponsors
- Resources
  - Tour
  - Books
  - Tutorials
  - Tools
  - Editors
  - IDEs
  - run.dlang.io
  - Visual D
  - Acknowledgments
  - D Style
  - Glossary
  - Sitemap

Search
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

License:
Boost License 1.0.
Authors:
Martin Nowak

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.

Copyright © 1999-2020 by the D Language Foundation | Page generated by Ddoc on Thu Jun 11 11:22:55 2020