On Mon, Nov 30, 2015 at 12:11 PM, Xavier Mendez <me(a)jmendeth.com> wrote:
Hello,
I'm wondering whether it's safe to do non-blocking reads or writes from
inside the process callback.
From what I've seen, non-blocking I/O doesn't cause the process to go into
blocked state, and the realtime scheduler should not switch to another
process. But the documentation doesn't seem to allow them:
[...] it cannot call functions that might block for a long time. This
includes all I/O functions (disk, TTY, network),
[...]
So, is it safe to use non-blocking I/O in the process callback?
Depends what you mean by safe. Unless you require quite low latency, for
instance less than 256 frames, and if your program is not supposed to run
simultaneously with hard realtime software such as ardour, calling I/O
functions in the jack thread should work fine. But you need to inform your
users that the program should not run simultaneously with hard realtime
software.