[Jack-Devel] Non-blocking I/O in process callback

Kjetil Matheussen k.s.matheussen at gmail.com
Mon Nov 30 16:36:34 CET 2015


On Mon, Nov 30, 2015 at 12:11 PM, Xavier Mendez <me at 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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.linuxaudio.org/archives/jackaudio/attachments/20151130/babaa6b0/attachment.html>


More information about the Jackaudio mailing list