Investigate shitty POSIX semantics for end of stream..
------------------------------------------------------
Key: LS-549
URL: http://dev.sourcefabric.org/browse/LS-549
Project: Liquidsoap
Issue Type: Task
Reporter: Romain Beauxis
Priority: Critical
Fix For: 1.0
As you may know, the POSIX semantics for sockets/streams is really (really)
shitty.
One of its infamous case is the semantics for end of streams: no error code may
be returned when a stream has ended. The "correct" way to detect an EOS on a
socket is to check whether a read returned 0...
Our decoding infrastructure, on the other hand, relies heavily on exceptions,
in particular for detecting end of streams. In LS-548, because the AAC decoder
has a read buffer, we did not see the end of track: last Unix.read was
returning 0 and we simply returned inifitely many time the last string in the
buffer..
Although this is fixed for LS-548, I am filling this task in order to have a
look at the code later. At every place where there is a Unix.read, we should
think of what happends if this read returns 0 char. On a more general level, we
may want to implement our own Utils.read and place there an exception raised
when the read returned 0...
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://dev.sourcefabric.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
------------------------------------------------------------------------------
Storage Efficiency Calculator
This modeling tool is based on patent-pending intellectual property that
has been used successfully in hundreds of IBM storage optimization engage-
ments, worldwide. Store less, Store more with what you own, Move data to
the right place. Try It Now! http://www.accelacomm.com/jaw/sfnl/114/51427378/
_______________________________________________
Savonet-devl mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/savonet-devl