diff options
author | Thibaut Mattern <tmattern@users.sourceforge.net> | 2003-02-23 19:27:57 +0000 |
---|---|---|
committer | Thibaut Mattern <tmattern@users.sourceforge.net> | 2003-02-23 19:27:57 +0000 |
commit | e19c38b7c3647031b8cf47d1a0ecb509a3795d7d (patch) | |
tree | 71c2a85945982fe4aa2dd61087b373ce7a3b53ea /src/xine-engine/buffer.c | |
parent | b99f91c970e3e4fb9b2e447599a16ae03be5256f (diff) | |
download | xine-lib-e19c38b7c3647031b8cf47d1a0ecb509a3795d7d.tar.gz xine-lib-e19c38b7c3647031b8cf47d1a0ecb509a3795d7d.tar.bz2 |
New method to get the number of free elements in the pool.
It will be used in net_buf_ctrl to detect if a fifo is full.
You need to recompile the whole lib after this patch.
CVS patchset: 4265
CVS date: 2003/02/23 19:27:57
Diffstat (limited to 'src/xine-engine/buffer.c')
-rw-r--r-- | src/xine-engine/buffer.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/xine-engine/buffer.c b/src/xine-engine/buffer.c index 7524196bc..38aaa0ec6 100644 --- a/src/xine-engine/buffer.c +++ b/src/xine-engine/buffer.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: buffer.c,v 1.24 2003/02/22 14:12:45 mroi Exp $ + * $Id: buffer.c,v 1.25 2003/02/23 19:27:57 tmattern Exp $ * * * contents: @@ -132,7 +132,7 @@ static buf_element_t *buffer_pool_try_alloc (fifo_buffer_t *this) { buf = this->buffer_pool_top; this->buffer_pool_top = this->buffer_pool_top->next; this->buffer_pool_num_free--; - + } else { buf = NULL; @@ -291,6 +291,19 @@ static uint32_t fifo_buffer_data_size (fifo_buffer_t *this) { } /* + * Return the number of free elements in the pool + */ +static int fifo_buffer_num_free (fifo_buffer_t *this) { + int buffer_pool_num_free; + + pthread_mutex_lock(&this->mutex); + buffer_pool_num_free = this->buffer_pool_num_free; + pthread_mutex_unlock(&this->mutex); + + return buffer_pool_num_free; +} + +/* * Destroy the buffer */ static void fifo_buffer_dispose (fifo_buffer_t *this) { @@ -349,6 +362,7 @@ fifo_buffer_t *fifo_buffer_new (int num_buffers, uint32_t buf_size) { this->get = fifo_buffer_get; this->clear = fifo_buffer_clear; this->size = fifo_buffer_size; + this->num_free = fifo_buffer_num_free; this->data_size = fifo_buffer_data_size; this->dispose = fifo_buffer_dispose; |