From: Alfons Adriaensen
<fons.adriaensen(a)alcatel.be>
On Fri, Jun 11, 2004 at 08:37:09AM -0400, Paul Davis wrote:
> you cannot modify the graph in JACK while the graph is being used to
> process audio. you do not know how long the graph modification will
> take if you try to do it (for example) right after you're done with
> one process cycle. the only sure way to do this is to use lock free
> parallel programming techniques.
Would anyone please explane details of these techniques?
Maybe it is something I know already but it is not clear.
The 'heavy state' is AFAICS not the real
problem.
Heavy things can be put in place before the actual graph reordering
is done or removed after. This does not need to be done in the RT
thread.
For speeding up this approach one can also use caches for the items.
The engine butler can initialize module structures, delay lines, etc.
at its spare time. These initialized items are placed to cache. When
the engine needs an initialized item, it gets the item instantly from
the cache. (No patent pending.)
Juhana