queue 38 src/ftdm_queue.c static ftdm_status_t ftdm_std_queue_enqueue(ftdm_queue_t *queue, void *obj); queue 39 src/ftdm_queue.c static void *ftdm_std_queue_dequeue(ftdm_queue_t *queue); queue 40 src/ftdm_queue.c static ftdm_status_t ftdm_std_queue_wait(ftdm_queue_t *queue, int ms); queue 41 src/ftdm_queue.c static ftdm_status_t ftdm_std_queue_get_interrupt(ftdm_queue_t *queue, ftdm_interrupt_t **interrupt); queue 81 src/ftdm_queue.c ftdm_queue_t *queue = NULL; queue 86 src/ftdm_queue.c queue = ftdm_calloc(1, sizeof(*queue)); queue 87 src/ftdm_queue.c if (!queue) { queue 91 src/ftdm_queue.c queue->elements = ftdm_calloc(1, (sizeof(void*)*capacity)); queue 92 src/ftdm_queue.c if (!queue->elements) { queue 95 src/ftdm_queue.c queue->capacity = capacity; queue 97 src/ftdm_queue.c if (ftdm_mutex_create(&queue->mutex) != FTDM_SUCCESS) { queue 101 src/ftdm_queue.c if (ftdm_interrupt_create(&queue->interrupt, FTDM_INVALID_SOCKET) != FTDM_SUCCESS) { queue 105 src/ftdm_queue.c *outqueue = queue; queue 109 src/ftdm_queue.c if (queue) { queue 110 src/ftdm_queue.c if (queue->interrupt) { queue 111 src/ftdm_queue.c ftdm_interrupt_destroy(&queue->interrupt); queue 113 src/ftdm_queue.c if (queue->mutex) { queue 114 src/ftdm_queue.c ftdm_mutex_destroy(&queue->mutex); queue 116 src/ftdm_queue.c ftdm_safe_free(queue->elements); queue 117 src/ftdm_queue.c ftdm_safe_free(queue); queue 122 src/ftdm_queue.c static ftdm_status_t ftdm_std_queue_enqueue(ftdm_queue_t *queue, void *obj) queue 126 src/ftdm_queue.c ftdm_assert_return(queue != NULL, FTDM_FAIL, "Queue is null!"); queue 128 src/ftdm_queue.c ftdm_mutex_lock(queue->mutex); queue 130 src/ftdm_queue.c if (queue->windex == queue->capacity) { queue 132 src/ftdm_queue.c queue->windex = 0; queue 135 src/ftdm_queue.c if (queue->size != 0 && queue->windex == queue->rindex) { queue 136 src/ftdm_queue.c ftdm_log(FTDM_LOG_ERROR, "Failed to enqueue obj %p in queue %p, no more room! windex == rindex == %d!\n", obj, queue, queue->windex); queue 140 src/ftdm_queue.c queue->elements[queue->windex++] = obj; queue 141 src/ftdm_queue.c queue->size++; queue 145 src/ftdm_queue.c ftdm_interrupt_signal(queue->interrupt); queue 149 src/ftdm_queue.c ftdm_mutex_unlock(queue->mutex); queue 154 src/ftdm_queue.c static void *ftdm_std_queue_dequeue(ftdm_queue_t *queue) queue 158 src/ftdm_queue.c ftdm_assert_return(queue != NULL, NULL, "Queue is null!"); queue 160 src/ftdm_queue.c ftdm_mutex_lock(queue->mutex); queue 162 src/ftdm_queue.c if (queue->size == 0) { queue 166 src/ftdm_queue.c obj = queue->elements[queue->rindex]; queue 167 src/ftdm_queue.c queue->elements[queue->rindex++] = NULL; queue 168 src/ftdm_queue.c queue->size--; queue 169 src/ftdm_queue.c if (queue->rindex == queue->capacity) { queue 170 src/ftdm_queue.c queue->rindex = 0; queue 175 src/ftdm_queue.c ftdm_mutex_unlock(queue->mutex); queue 180 src/ftdm_queue.c static ftdm_status_t ftdm_std_queue_wait(ftdm_queue_t *queue, int ms) queue 183 src/ftdm_queue.c ftdm_assert_return(queue != NULL, FTDM_FAIL, "Queue is null!"); queue 185 src/ftdm_queue.c ftdm_mutex_lock(queue->mutex); queue 188 src/ftdm_queue.c if (queue->size != 0) { queue 189 src/ftdm_queue.c ftdm_mutex_unlock(queue->mutex); queue 194 src/ftdm_queue.c ret = ftdm_interrupt_wait(queue->interrupt, ms); queue 197 src/ftdm_queue.c ftdm_mutex_unlock(queue->mutex); queue 202 src/ftdm_queue.c static ftdm_status_t ftdm_std_queue_get_interrupt(ftdm_queue_t *queue, ftdm_interrupt_t **interrupt) queue 204 src/ftdm_queue.c ftdm_assert_return(queue != NULL, FTDM_FAIL, "Queue is null!\n"); queue 206 src/ftdm_queue.c *interrupt = queue->interrupt; queue 212 src/ftdm_queue.c ftdm_queue_t *queue = NULL; queue 216 src/ftdm_queue.c queue = *inqueue; queue 217 src/ftdm_queue.c ftdm_interrupt_destroy(&queue->interrupt); queue 218 src/ftdm_queue.c ftdm_mutex_destroy(&queue->mutex); queue 219 src/ftdm_queue.c ftdm_safe_free(queue->elements); queue 220 src/ftdm_queue.c ftdm_safe_free(queue); queue 198 src/include/freetdm.h typedef ftdm_status_t (*ftdm_queue_create_func_t)(ftdm_queue_t **queue, ftdm_size_t capacity); queue 199 src/include/freetdm.h typedef ftdm_status_t (*ftdm_queue_enqueue_func_t)(ftdm_queue_t *queue, void *obj); queue 200 src/include/freetdm.h typedef void *(*ftdm_queue_dequeue_func_t)(ftdm_queue_t *queue); queue 201 src/include/freetdm.h typedef ftdm_status_t (*ftdm_queue_wait_func_t)(ftdm_queue_t *queue, int ms); queue 202 src/include/freetdm.h typedef ftdm_status_t (*ftdm_queue_get_interrupt_func_t)(ftdm_queue_t *queue, ftdm_interrupt_t **interrupt); queue 203 src/include/freetdm.h typedef ftdm_status_t (*ftdm_queue_destroy_func_t)(ftdm_queue_t **queue); queue 259 src/include/private/ftdm_core.h #define ftdm_queue_create(queue, capacity) g_ftdm_queue_handler.create(queue, capacity) queue 262 src/include/private/ftdm_core.h #define ftdm_queue_enqueue(queue, obj) g_ftdm_queue_handler.enqueue(queue, obj) queue 265 src/include/private/ftdm_core.h #define ftdm_queue_dequeue(queue) g_ftdm_queue_handler.dequeue(queue) queue 268 src/include/private/ftdm_core.h #define ftdm_queue_wait(queue, ms) g_ftdm_queue_handler.wait(queue, ms) queue 271 src/include/private/ftdm_core.h #define ftdm_queue_get_interrupt(queue, ms) g_ftdm_queue_handler.get_interrupt(queue, ms) queue 274 src/include/private/ftdm_core.h #define ftdm_queue_destroy(queue) g_ftdm_queue_handler.destroy(queue)