RFD: Rework/extending functionality of mdev

Harald Becker ralda at gmx.de
Sun Mar 15 22:31:01 UTC 2015


On 15.03.2015 20:06, Laurent Bercot wrote:
> The behavior of multiple concurrent reads on the same pipe, FIFO,
>     or terminal device is unspecified.

That is, you can't predict, which process will get the data, but each 
single read operation on a pipe (private or named), is done atomic. 
Either it is done complete and read the requested number of bytes, or it 
is not done at all. It won't read half of the data, then let some data 
pass to a different process, then continue with the read in the first 
process (or let that one do short read, when there is enough data).

I don't want to introduce this or use it, but please stop and think 
about: When each writer and each reader agree at the size of messages 
written / read from the pipe, you can have multiple writers *and* 
multiple readers on the same pipe. Due to atomicity of the write and 
read operations.

... and I know, it's not in POSIX / OpenGroup ... it's just working 
practice ... try it and you will see, it works.

... for curiosity :)  (And don't fear, I won't do this)



More information about the busybox mailing list