I read here about how JACK handles the client ordering using the sortfeeds and truefeeds list https://github.com/jackaudio/jackaudio.github.com/wiki/A_guide_to_the_Jack1_source_code#data-structures
So with a graph like this:
A -> B -> C
When I make a connection between C and A:
C -> A
Then C will be added to A's sortfeeds list and the processing order will be retained: [A, B, C].
My question is: when does A actually get C's output data? If JACK allows the connection, then A should get as input C's output data. Is there a one-cycle delay? That's kind of what I interpreted
this to mean.
I also read
this but didn't walk away with a clear idea of what JACK actually does.
In the event
of feedback loops, there is no ”correct” ordering of the
graph, so Jack just picks one of the legal possibilities.
Is the "legal" choice that JACK is making here the same thing as what is discussed on the Wiki page at the top of my post?
Also, do jack2 and jack1 behave the same in this regard?