Hello there,
Following a user issue leading to the application hanging forever on their machine, we narrowed this problem down to when the application is closing and calls Studio::System::flushCommands() (which blocks forever).
Our shut down sequence is:
Studio::System::unloadAll()Studio::System::flushCommands()Studio::System::release()
This made me wonder what is the expected sequence to shut down FMOD. Some exemples call Studio::System::unloadAll() and Studio::System::release() and that’s it.
Other exemples unload each banks individually, and some examples call Studio::System::flushCommands() before Studio::System::release() (to make sure that the banks are unloaded, I assume?) but some don’t.
Is Studio::System::flushCommands() even needed? Does Studio::System::release() calls it internally and/or wait for the banks to actually be unloaded?
And is Studio::System::unloadAll() required? There is at least one exemple that loads a bank and just call Studio::System::release() without explicitly unloading anything.
Thanks for any clarification.
Cheers!
(Running on FMOD 2.02.11 and the freeze also happened on earlier versions.)