[vlc-devel] commit: Allow block_FifoPut(fifo,NULL) ( Rémi Denis-Courmont )
git version control
git at videolan.org
Wed Oct 22 22:47:02 CEST 2008
vlc | branch: master | Rémi Denis-Courmont <rdenis at simphalempin.com> | Wed Oct 22 23:36:37 2008 +0300| [a2f64f8a853a69dc30d5df100e84792c8c4440b7] | committer: Rémi Denis-Courmont
Allow block_FifoPut(fifo,NULL)
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a2f64f8a853a69dc30d5df100e84792c8c4440b7
---
src/misc/block.c | 12 ++++++++----
1 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/src/misc/block.c b/src/misc/block.c
index 71badca..4f0a04b 100644
--- a/src/misc/block.c
+++ b/src/misc/block.c
@@ -401,12 +401,17 @@ void block_FifoEmpty( block_fifo_t *p_fifo )
vlc_mutex_unlock( &p_fifo->lock );
}
+/**
+ * Immediately queue one block at the end of a FIFO.
+ * @param fifo queue
+ * @param block head of a block list to queue (may be NULL)
+ */
size_t block_FifoPut( block_fifo_t *p_fifo, block_t *p_block )
{
size_t i_size = 0;
vlc_mutex_lock( &p_fifo->lock );
- do
+ while (p_block != NULL)
{
i_size += p_block->i_buffer;
@@ -416,10 +421,9 @@ size_t block_FifoPut( block_fifo_t *p_fifo, block_t *p_block )
p_fifo->i_size += p_block->i_buffer;
p_block = p_block->p_next;
+ }
- } while( p_block );
-
- /* warn there is data in this fifo */
+ /* We queued one block: wake up one read-waiting thread */
vlc_cond_signal( &p_fifo->wait );
vlc_mutex_unlock( &p_fifo->lock );
More information about the vlc-devel
mailing list