On 6/29/19 8:32 PM, Johannes Lorenz wrote:
Thanks!
Yes, see
http://jackaudio.org/api/group__ClientThreads.html
libjack offers jack_client_create_thread(), which is useful for helper
threads.
Where should our DAW call this function? From inside the jack callback,
or from outside (e.g. by the `main()` thread)?
Creating threads is not realtime safe, so it must not be called from the
jack callback.
You usually create the threads at the same time when you connect to jack
and register the process callback, which is your main application/engine
thread, likely even main().
Also, what should we pass for the "priority"
argument? Probably the
result of `jack_client_real_time_priority` for the already running
realtime thread?
Yes. Something like:
jack_client_t* jc;
jack_native_thread_t tid;
if (jack_client_create_thread (
jc, &tid,
jack_client_real_time_priority (jc),
jack_is_realtime (jc),
start_worker_method, NULL)
) { /* failed to create realtime thread */ }
Cheers!
robin