(v13) Dynamic input plugin loading
This page applies to Harlequin v13.1r0 and later; and to Harlequin MultiRIP but not Harlequin Core
A plugin will only ever be unloaded:
- When there are no channel classes active (that is, created, not necessarily open), or
- When each of the following is the case: (i) no active channel classes require tickling, (ii) no channels exist for any active channel class, and (iii) no channel class that had set
CCF_DO_NOT_UNLOAD
in theChannelClassFlags
field of itsChannelClassDescription
is active.
A plugin could undertake to ensure that these conditions do not arise during periods when unloading would be damaging - for example, if unloading would remove interrupt handler code).
Note: On some platforms you can set up global/static data areas for a plugin. This data will be lost when the plugin is unloaded, so take care to store any state information that must be maintained across unloading and reloading of a plugin in the appropriate state structures. These structures are maintained by the RIP and reinstated when the plugin is reloaded.