However, there is no point of marking host extension functions by design; RT safety on extension functions are assured only by AAPXS SysEx8 which is based on the plugin's process() function which is a request from the host and reply from the plugin. The initiator is always the plugin side. Host extension functions are the other way around - sent either via a callback Binder (on non-RT INACTIVE mode) or AAPXS SysEx8 (on RT ACTIVE mode), and there is no round-trip reply from the host within the same process(). The reply from the host is always the next process() at the fastest.
Since there is no guarantee that two process() calls are made within a RT slot, everything is RT_UNSAFE in principle. Therefore, those annotations do not make sense.
Currently we mark
RT_SAFE
andRTUNSAFE
annotations on host extensions e.g.:However, there is no point of marking host extension functions by design; RT safety on extension functions are assured only by AAPXS SysEx8 which is based on the plugin's
process()
function which is a request from the host and reply from the plugin. The initiator is always the plugin side. Host extension functions are the other way around - sent either via a callback Binder (on non-RT INACTIVE mode) or AAPXS SysEx8 (on RT ACTIVE mode), and there is no round-trip reply from the host within the sameprocess()
. The reply from the host is always the nextprocess()
at the fastest.Since there is no guarantee that two
process()
calls are made within a RT slot, everything isRT_UNSAFE
in principle. Therefore, those annotations do not make sense.