On Thu, Feb 04, 2021 at 04:31:05PM -0600, Brent Busby wrote:
It's usually said that Jack 2 is optimized for SMP
'optimized for SMP' is somewhat misleading.
If you parallel paths, e.g
A -> X -> B
A -> Y -> B
or even as simple as
X -> playback
Y -> playback
then Jack2 will run X and Y at the same time if you have 2
or more CPUs, and Jack1 won't do that.
Another difference is that Jack1 sometimes runs clients out
of order - it uses the wrong algorithm to compute this.
For the first example above it could e.g. run X before A.
In many cases you won't notice the problem and that's why
this remained undetected until it hit me. I wasted a lot of
time trying to find the error in my code, until the only way
to explain things was to assume that Jack1 was the problem.
Patches to fix this (and some other problems) were rejected.
Otoh, I never managed to get even a minimal understanding
of Jack2's code, it's the sort of C++ that I prefer not to
touch.
--
FA