Tracktion Engine Message Thread Blocking UI

Hello,

I’m currently working on a React Native application and facing some issues integrating Tracktion Engine. Here are the details:

  • Setup: React Native application with an iOS native module.
  • Integration: Using Tracktion Engine as a static iOS library.

Issue: Thread Initialization

  • If we don’t initialize Tracktion on the main thread (the UI thread), we encounter JUCE assertion errors.
  • If we initialize Tracktion on the main thread and call all Tracktion methods on the same thread, the UI starts hanging and reaches 100% capacity, since it’s being called on the main thread (which is also used to render the iOS/React Native UI).

Question:

How can we ensure Tracktion runs on the main thread without blocking the UI? Alternatively, is there a way to run Tracktion on a different thread and not get the callback errors?

Any help or suggestions would be greatly appreciated!

Thank you!

It needs to run on the main thread, but what exactly is blocking? It might be there are some old modal loops we can remove as the majority of the library shouldn’t block indefinitely.