That certainly doesn't *sound* correct. It *sounds* like a bug to me.
POLLIN Data other than high priority data may be read
without blocking. For STREAMS, this flag is set
in revents even if the message is of zero
length.
The description above doesn't indicate anything about whether the data
had previously been signaled or not.
That said, it does seem strange that you would read less than the full
amount of data available in the FIFO at any given time.
-- Garrett
Roland Mainz wrote:
> Hi!
>
> ----
>
> I'm currently writing a small application which should use |poll()| on
> multiple FIFOs (created via /usr/bin/mkfifo) - after some testing I hit
> a weired behaviour: The FIFOs are fed from other processes (one FIFO per
> process) which never terminate (e.g. |POLLHUP| not involved) and only
> write data from time to time into the FIFOs and the consumer application
> uses |poll()| to wait for incoming data. It seems that if the consumer
> only reads some data from a FIFO file descriptor and not all queued data
> then the |revent| field for this pollfd entry will return |0| on the
> following |poll()| call (even if there are still data queued).
> Is this the correct behaviour ?
>
> ----
>
> Bye,
> Roland
>
>
_______________________________________________
opensolaris-code mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code