core.gc.registry

Contains a registry for GC factories.

License:
Boost License 1.0.
Authors:
Martin Nowak
alias GCFactory = GC function();

A factory function that instantiates an implementation of the GC interface. In case the instance was allocated on the C heap, it is supposed to free itself upon calling it's destructor.

The factory should print an error and abort the program if it cannot successfully initialize the GC instance.

nothrow @nogc void registerGCFactory(string name, GCFactory factory);

Register a GC factory under the given name. This function must be called from a C constructor before druntime is initialized.

To use the registered GC, it's name must be specified gcopt runtime option, e.g. by passing , --DRT-gcopt=gc:my_gc_name as application argument.

Parameters:
string name name of the GC implementation; should be unique
GCFactory factory function to instantiate the implementation
Note
The registry does not perform synchronization, as registration is assumed to be executed serially, as is the case for C constructors.
See Also:
Configuring the Garbage Collector
GC createGCInstance(string name);

Called during runtime initialization to initialize a GC instance of given name.

Parameters:
string name name of the GC to instantiate
Returns:
The created GC instance or null if no factory for that name was registered

© 1999–2021 The D Language Foundation
Licensed under the Boost License 1.0.
https://dlang.org/phobos/core_gc_registry.html