Thread safety between instances


#1

How thread safe are initialise() and shutdown() when other instances are running?

I’m keeping a global array of all open instances, and I don’t want another instance to try to access one that’s in the act of not existing any more.

Adding and deleting are fast, so if it needs a lock it shouldn’t be a problem unless there are no locks that work across instances.

I’m looking to tab multiple instances so they don’t clutter up the whole screen - the host needs to be visible sometimes.

Also I want do some audio hacks where the instances work together in some ways (like synchronizing attacks a bit) and stay out of each other’s way in other ways (like not using the same number of interpolation segments on 24 tracks, which could create some nasty digital noise).

The new version is lean and mean, but still hasn’t fired up yet (gotta dot some more i’s and cross a few t’s still).

The Jucer interface looks great with about half as many controls. I’d like to have colored rotary knobs, both outline and fill - since the track and thumb colors aren’t used for rotary knobs it should be simple.

me.isBackToTheHack() == true;

Dave Heinemann


#2

Thread safety depends on the host, so don’t make any assumptions. I think tracktion might sometimes run init/shutdown on a background thread rather than the UI thread, but won’t call into more than one plugin at a time. Can’t speak for other hosts, though…


#3