input_stream: non-blocking I/O
Add GMutex, GCond attributes which will be used by callers to conditionally wait on the stream. Remove the (now-useless) plugin method buffer(), wait on GCond instead. Lock the input_stream before each method call. Do the same with the playlist plugins.
This commit is contained in:
@@ -68,8 +68,8 @@ text_input_stream_read(struct text_input_stream *tis)
|
||||
do {
|
||||
dest = fifo_buffer_write(tis->buffer, &length);
|
||||
if (dest != NULL) {
|
||||
nbytes = input_stream_read(tis->is, dest, length,
|
||||
&error);
|
||||
nbytes = input_stream_lock_read(tis->is, dest, length,
|
||||
&error);
|
||||
if (nbytes > 0)
|
||||
fifo_buffer_append(tis->buffer, nbytes);
|
||||
else if (error != NULL) {
|
||||
|
||||
Reference in New Issue
Block a user