I’m currently developing a plugin which should run on ELK and Linux desktop systems. I’m using the TWINE library, as the plugin uses threads. In order to keep a common code base, i tried to compile TWINE for X86, as suggested here.
On the ELK system everything works perfectly. For Linux desktop, i cloned TWINE from the GitHUB repo, disabled Unit tests & Xenomai
option(TWINE_WITH_XENOMAI "Build with xenomai realtime thread support" OFF) option(TWINE_WITH_TESTS "Build and run unit tests" OFF)
and run CMAKE, make & make install. TWINE builds flawlessly. Including TWINE and building for X86 works also without any problems! So there are no build issues!
The problem starts when running the plugin. I’m currently using Ardour as my plugin host on Linux desktop. After start, Ardour scans the plugin path. When scanning reaches my plugin, scanning is stopped and the plugin cannot be found in the plugin list anymore. Re-scanning won’t help.
I’m creating a worker pool in the constructor of the Audio processor of JUCE. when i remove the “pool = create_worker_pool(get_nprocs()” call from the constructor, the plugin can be scanned and used again.
Since i can’t even attach to the Ardour process, there is no possibility i see how to debug the problem.
Any idea how to progress from here?