block_Fifo(Wake|Get|Show): always cancellation points
authorRémi Denis-Courmont <rdenis@simphalempin.com>
Tue, 6 Jan 2009 10:20:24 +0000 (12:20 +0200)
committerRémi Denis-Courmont <rdenis@simphalempin.com>
Tue, 6 Jan 2009 10:20:24 +0000 (12:20 +0200)
This is consistent with the comments in <vlc_block.h>.
So far, cancellation would only occur when sleeping was needed.

src/misc/block.c

index 1c68a3f..3cb5375 100644 (file)
@@ -431,6 +431,8 @@ void block_FifoEmpty( block_fifo_t *p_fifo )
  */
 void block_FifoPace (block_fifo_t *fifo, size_t max_depth, size_t max_size)
 {
  */
 void block_FifoPace (block_fifo_t *fifo, size_t max_depth, size_t max_size)
 {
+    vlc_testcancel ();
+
     vlc_mutex_lock (&fifo->lock);
     while ((fifo->i_depth > max_depth) || (fifo->i_size > max_size))
     {
     vlc_mutex_lock (&fifo->lock);
     while ((fifo->i_depth > max_depth) || (fifo->i_size > max_size))
     {
@@ -483,6 +485,8 @@ block_t *block_FifoGet( block_fifo_t *p_fifo )
 {
     block_t *b;
 
 {
     block_t *b;
 
+    vlc_testcancel( );
+
     vlc_mutex_lock( &p_fifo->lock );
     mutex_cleanup_push( &p_fifo->lock );
 
     vlc_mutex_lock( &p_fifo->lock );
     mutex_cleanup_push( &p_fifo->lock );
 
@@ -523,6 +527,8 @@ block_t *block_FifoShow( block_fifo_t *p_fifo )
 {
     block_t *b;
 
 {
     block_t *b;
 
+    vlc_testcancel( );
+
     vlc_mutex_lock( &p_fifo->lock );
     mutex_cleanup_push( &p_fifo->lock );
 
     vlc_mutex_lock( &p_fifo->lock );
     mutex_cleanup_push( &p_fifo->lock );