Exemplo n.º 1
0
void queue_block_until_needed(PacketQueue audioq, PacketQueue videoq) {
     pthread_mutex_t *audioq_mutex;

     audioq_mutex = queue_get_mutex(audioq);
     pthread_mutex_lock(audioq_mutex);
     if (queue_get_size(audioq) > MAX_QUEUED_PACKETS && queue_get_size(videoq) > MAX_QUEUED_PACKETS)
          pthread_cond_wait(&is_full, audioq_mutex);
     pthread_mutex_unlock(audioq_mutex);
}
Exemplo n.º 2
0
void *producer(void *arg)
{
    while(1)
    {
        pthread_mutex_lock(&mutex);
        while(queue_get_size(&Q) >= BUFFERSIZE)
        {
            pthread_cond_wait(&empty, &mutex);
        }
        int data = rand()%100;
        queue_push(&Q, data);
        printf("producer a data: %d\n", data);
        pthread_cond_signal(&full);
        pthread_mutex_unlock(&mutex);
        sleep(3);
    }
}
Exemplo n.º 3
0
static inline int64_t coremu_intr_get_size(CMCore *core)
{
    return queue_get_size(core->intr_queue);
}
Exemplo n.º 4
0
bool queue_is_empty(Queue *queue){
    return (0 == queue_get_size(queue)) && 
        (queue_get_head(queue) == queue_get_tail(queue));
}
Exemplo n.º 5
0
size_t thread_pool_get_size_of_queue(pool_t *pool)
{
    return queue_get_size(&pool->queue_);
}