README.txt
1 libnbaio (for "Non-Blocking Audio I/O") was originally intended to
2 be a purely non-blocking API. It has evolved to now include
3 a few blocking implementations of the interface.
4
5 Note: as used here, "short transfer count" means the return value for
6 read() or write() that indicates the actual number of successfully
7 transferred frames is less than the requested number of frames.
8
9 Pipe
10 ----
11 supports 1 writer and N readers
12
13 no mutexes, so safe to use between SCHED_NORMAL and SCHED_FIFO threads
14
15 writes:
16 non-blocking
17 never return a short transfer count
18 overwrite data if not consumed quickly enough
19
20 reads:
21 non-blocking
22 return a short transfer count if not enough data
23 will lose data if reader doesn't keep up
24
25 MonoPipe
26 --------
27 supports 1 writer and 1 reader
28
29 no mutexes, so safe to use between SCHED_NORMAL and SCHED_FIFO threads
30
31 write are optionally blocking:
32 if configured to block, then will wait until space available before returning
33 if configured to not block, then will return a short transfer count
34 and will never overwrite data
35
36 reads:
37 non-blocking
38 return a short transfer count if not enough data
39 never lose data
40
41