#include "config.h"
#include "daemon/worker.h"
#include "shared/allocator.h"
#include "shared/locks.h"
#include "shared/status.h"
#include <stdio.h>
#include <time.h>
#include <ldns/ldns.h>
Go to the source code of this file.
Data Structures | |
struct | fifoq_struct |
Defines | |
#define | FIFOQ_MAX_COUNT 1000 |
Typedefs | |
typedef struct fifoq_struct | fifoq_type |
Functions | |
fifoq_type * | fifoq_create (allocator_type *allocator) |
void | fifoq_wipe (fifoq_type *q) |
void * | fifoq_pop (fifoq_type *q, worker_type **worker) |
ods_status | fifoq_push (fifoq_type *q, void *item, worker_type *worker) |
void | fifoq_cleanup (fifoq_type *q) |
#define FIFOQ_MAX_COUNT 1000 |
typedef struct fifoq_struct fifoq_type |
void fifoq_cleanup | ( | fifoq_type * | q | ) |
Clean up queue.
[in] | q | queue to be cleaned up |
Clean up queue.
Definition at line 167 of file fifoq.c.
References fifoq_struct::allocator, zonelist_struct::allocator, allocator_deallocate(), lock_basic_destroy, lock_basic_off, ods_log_assert, fifoq_struct::q_lock, and fifoq_struct::q_threshold.
Referenced by engine_cleanup().
fifoq_type* fifoq_create | ( | allocator_type * | allocator | ) |
Create new FIFO queue.
[in] | allocator | memory allocator |
Create new FIFO queue.
Definition at line 50 of file fifoq.c.
References fifoq_struct::allocator, allocator_alloc(), fifoq_wipe(), lock_basic_init, lock_basic_set, ods_log_assert, ods_log_error(), fifoq_struct::q_lock, and fifoq_struct::q_threshold.
void* fifoq_pop | ( | fifoq_type * | q, | |
worker_type ** | worker | |||
) |
Pop item from queue.
[in] | q | queue |
[out] | worker | worker that owns the item |
Pop item from queue.
Definition at line 98 of file fifoq.c.
References fifoq_struct::blob, fifoq_struct::count, ods_log_deeebug(), and fifoq_struct::owner.
ods_status fifoq_push | ( | fifoq_type * | q, | |
void * | item, | |||
worker_type * | worker | |||
) |
Push item to queue.
[in] | q | queue |
[in] | item | item |
[in] | worker | owner of item |
Push item to queue.
Definition at line 127 of file fifoq.c.
References fifoq_struct::blob, fifoq_struct::count, FIFOQ_MAX_COUNT, lock_basic_broadcast, ods_log_assert, ods_log_deeebug(), ods_log_error(), fifoq_struct::owner, and fifoq_struct::q_threshold.
Referenced by rrset_queue().
void fifoq_wipe | ( | fifoq_type * | q | ) |
Wipe queue.
[in] | q | queue to be wiped |
[out] | worker | worker that owns the item |
Wipe queue.
Definition at line 80 of file fifoq.c.
References fifoq_struct::blob, fifoq_struct::count, and fifoq_struct::owner.
Referenced by fifoq_create().