[Live-devel] Non blocking read in ByteStreamFileSource

Kumar Sambhav sambhav at saranyu.in
Tue Feb 28 00:39:47 PST 2012


Initially i thought the pipe read would be blocking till data is available. You clarified in linux it will not block.  

Then figured out that blocking is happening at fopen.  

alternative to fopen, open() can  be used to open a PIPE  in non-blocking mode.
open("name" ,O_RDONLY | O_NONBLOCK)

On Feb 28, 2012, at 1:01 PM, Ross Finlayson wrote:

>> I am using Linux.
> 
> Good.
> 
> 
>> Before going to read function, the program blocks at ByteStreamFileSource::createNew when it tries to do OpenInputFile on a pipe. 
> 
> OK, now you're talking about something else.  Beforehand, you were talking about reading from a pipe - which is done (in your case) using "read()", is called from the event loop (only when data is available to be read), and should not block.
> 
> Now, you seem to be talking about *opening* the pipe, which is done using "OpenInputFile()", which is implemented as a call to "fopen()".  I don't know why that would block, however...
> 
> 
> Ross Finlayson
> Live Networks, Inc.
> http://www.live555.com/
> 
> _______________________________________________
> live-devel mailing list
> live-devel at lists.live555.com
> http://lists.live555.com/mailman/listinfo/live-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20120228/c22ce12d/attachment.html>


More information about the live-devel mailing list