internal property
Provides access to the thread-seperate backend internals (FMTCBackendInternalThreadSafe) globally with some level of access control
Only a single backend may set the internal backend at any one time, essentially providing a locking mechanism preventing multiple backends from being used at the same time (with a shared access).
A FMTCBackendInternal implementation can access the internal setters, and should set them both sequentially at the end of the FMTCBackend.initialise & FMTCBackend.uninitialise implementations.
The internal getter(s) should never be used outside of FMTC internals, as it provides access to potentially uncontrolled, and unorganised, methods.
Implementation
@meta.internal
@meta.experimental
static FMTCBackendInternalThreadSafe get internal =>
_internal ?? (throw RootUnavailable());
Implementation
@meta.protected
static set internal(FMTCBackendInternalThreadSafe? newInternal) {
if (newInternal != null && _internal != null) {
throw RootAlreadyInitialised();
}
_internal = newInternal;
}