[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