-
Notifications
You must be signed in to change notification settings - Fork 143
Description
Hi, FlexASIO dev here.
In dechamps/FlexASIO#183 I observed that, if the "Configure" button in the SAR control panel is clicked while the ASIO driver is running, SAR will instantiate a second instance of the backend ASIO driver in the same process.
This is arguably a violation of the ASIO spec, given that the ASIO SDK really only supports a single global singleton instance of the ASIO driver running in the entire process, and ASIO drivers would therefore be justified in assuming that they will not be instantiated more than once in the same process at any given time.
Currently FlexASIO does make that assumption, and crashes as soon as SAR attempts to create the second instance. I'm going to make FlexASIO more resilient to this usage pattern, but I would recommend that SAR refrains from using ASIO drivers in ways that might not be compliant with the ASIO SDK, as that might cause problems with other backend drivers as well. (Especially since, in this particular case, this seems like an easy fix - if you already have an ASIO driver instance, then call controlPanel() on that instance instead of creating a new one.)