Thread crash in FMOD::SystemI::updateStreams

I’m working with an old windows product experiencing stalls when releasing sounds. I’ve switched to delayed releasing of sound sources until they are either in a ready or error state as suggested in the documentation. However now I am experience streaming thread crashes (FMOD::SystemI::updateStreams). I don’t understand what could happen between the the old and new release times and how to do this safely. I suspect there is some shared resource being used if the same file is loaded again before the release happens. It doesn’t appear that FMOD::Sound pointers are recycled on subsequent loads though.

I suspect the use of FMOD_OPENMEMORY is my problem here as the provided user memory is still getting freed immediately.

Did this end up being the issue?

If not:

  • What’s your exact FMOD version?
  • Can I get you to use Debug_Initialize to set your logging level to “LEVEL_LOG”, and provide me with a log where the issue occurs?

Unfortunately it’s going to take quite a refactor to get both the sounds and user memory freed at the same time. The version is 4.44.56. This definitely seems like a smoking gun consider the notes in the documentation. We’re using streaming sounds and it’s pretty clear about the memory sticking around until sounds until release :frowning:

You may want to try updating to FMOD Ex 4.44.64 and seeing whether that makes any difference, but I agree that based on what you’ve described it sounds like the real solution would be a refactor. Depending on your setup, it may be worth adjusting all streaming sounds to instead be loaded into memory, but I can definitely understand how that might not be possible given memory overhead constraints.

FMOD Ex is also no longer officially supported, so I may not be able to offer much help on any technical issues unless you update to a supported version of FMOD Studio (2.02.00 and up).

Thanks. I’ll post again if pairing the user memory and sound release doesn’t work.