On Fri, May 11, 2018 3:59 pm, Chris Caudle wrote:
In short, I think this is a bug in the asterisk implementation. It
should be checking how much free space is available and only attempting to
write that, or should just deal with write() not writing the full amount
of data and calling write() again later to finish writing all the data.
Not writing the full amount of data won't be a solution, it just hides the
warning.
Writing it later seems to be no solution since the data is "gone" once the
function returns.
The ringbuffer actually solves this by providing that storage between
functions/threads. It just has to be big enough and read out at a rate
that will allow for more input data in time.
Greetings
Thomas