The non-callback API Detailed DescriptionThe functions in this group are intended to be used for more advanced purposes. Typical use cases are JACK client applications which implement their audio rendering engine to support SMP to i.e. utilize the resources of a multi core CPU device in a more powerful way. Even though recent implementations of the JACK server (jackdmp, JACK2) explicitly support SMP during execution of their graph branches, each client is by default executed in only one thread (within the process of the respective client application). So it can make sense in certain cases to implement a JACK client application in a more extended way for SMP purposes, i.e. in cases of a complex DAW application which is supposed to bear most of the CPU work load of the entire JACK system. In the latter case, the parallelization of JACK graphs hits a logical constraint and might not be able to utilize the CPU resources of a SMP system optimal in full extent. In such a case the JACK client app might create additional audio thread(s) and use the functions below to synchronize them for each JACK process period, since those separate audio thread(s) would not be part of the usual JACK process callback context.
Function Documentation
THIS FUNCTION IS DEPRECATED AND SHOULD NOT BE USED IN NEW JACK CLIENTS.
Wait until this JACK client should process data.
Signal next clients in the graph.
Tell the Jack server to call thread_callback in the RT thread. Typical use are in conjunction with jack_cycle_wait and jack_cycle_signal functions. The code in the supplied function must be suitable for real-time execution. That means that it cannot call functions that might block for a long time. This includes malloc, free, printf, pthread_mutex_lock, sleep, wait, poll, select, pthread_join, pthread_cond_wait, etc, etc. NOTE: this function cannot be called while the client is activated (after jack_activate has been called.)
Generated by |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|