|
ascii-chat 0.8.38
Real-time terminal-based video chat with ASCII art conversion
|
📬 Lock-free packet queue with per-client isolation and memory pooling More...
Go to the source code of this file.
Functions | |
| node_pool_t * | node_pool_create (size_t pool_size) |
| void | node_pool_destroy (node_pool_t *pool) |
| packet_node_t * | node_pool_get (node_pool_t *pool) |
| void | node_pool_put (node_pool_t *pool, packet_node_t *node) |
| packet_queue_t * | packet_queue_create (size_t max_size) |
| packet_queue_t * | packet_queue_create_with_pool (size_t max_size, size_t pool_size) |
| packet_queue_t * | packet_queue_create_with_pools (size_t max_size, size_t node_pool_size, bool use_buffer_pool) |
| void | packet_queue_destroy (packet_queue_t *queue) |
| int | packet_queue_enqueue (packet_queue_t *queue, packet_type_t type, const void *data, size_t data_len, uint32_t client_id, bool copy_data) |
| int | packet_queue_enqueue_packet (packet_queue_t *queue, const queued_packet_t *packet) |
| queued_packet_t * | packet_queue_dequeue (packet_queue_t *queue) |
| queued_packet_t * | packet_queue_try_dequeue (packet_queue_t *queue) |
| void | packet_queue_free_packet (queued_packet_t *packet) |
| size_t | packet_queue_size (packet_queue_t *queue) |
| bool | packet_queue_is_empty (packet_queue_t *queue) |
| bool | packet_queue_is_full (packet_queue_t *queue) |
| void | packet_queue_stop (packet_queue_t *queue) |
| void | packet_queue_clear (packet_queue_t *queue) |
| void | packet_queue_get_stats (packet_queue_t *queue, uint64_t *enqueued, uint64_t *dequeued, uint64_t *dropped) |
| bool | packet_queue_validate_packet (const queued_packet_t *packet) |
📬 Lock-free packet queue with per-client isolation and memory pooling
Definition in file packet_queue.c.
| node_pool_t * node_pool_create | ( | size_t | pool_size | ) |
Definition at line 25 of file packet_queue.c.
References mutex_init(), and node_pool_destroy().
Referenced by packet_queue_create_with_pools().
| void node_pool_destroy | ( | node_pool_t * | pool | ) |
Definition at line 55 of file packet_queue.c.
References mutex_destroy().
Referenced by node_pool_create(), and packet_queue_destroy().
| packet_node_t * node_pool_get | ( | node_pool_t * | pool | ) |
Definition at line 65 of file packet_queue.c.
Referenced by packet_queue_enqueue(), and packet_queue_enqueue_packet().
| void node_pool_put | ( | node_pool_t * | pool, |
| packet_node_t * | node | ||
| ) |
Definition at line 94 of file packet_queue.c.
Referenced by packet_queue_enqueue(), packet_queue_enqueue_packet(), and packet_queue_try_dequeue().
| void packet_queue_clear | ( | packet_queue_t * | queue | ) |
Definition at line 606 of file packet_queue.c.
References packet_queue_free_packet(), and packet_queue_try_dequeue().
Referenced by packet_queue_destroy().
| packet_queue_t * packet_queue_create | ( | size_t | max_size | ) |
Definition at line 128 of file packet_queue.c.
References packet_queue_create_with_pool().
| packet_queue_t * packet_queue_create_with_pool | ( | size_t | max_size, |
| size_t | pool_size | ||
| ) |
Definition at line 132 of file packet_queue.c.
References packet_queue_create_with_pools().
Referenced by packet_queue_create().
| packet_queue_t * packet_queue_create_with_pools | ( | size_t | max_size, |
| size_t | node_pool_size, | ||
| bool | use_buffer_pool | ||
| ) |
Definition at line 136 of file packet_queue.c.
References buffer_pool_create(), and node_pool_create().
Referenced by add_client(), add_webrtc_client(), and packet_queue_create_with_pool().
| queued_packet_t * packet_queue_dequeue | ( | packet_queue_t * | queue | ) |
Definition at line 459 of file packet_queue.c.
References packet_queue_try_dequeue().
| void packet_queue_destroy | ( | packet_queue_t * | queue | ) |
Definition at line 161 of file packet_queue.c.
References buffer_pool_destroy(), buffer_pool_log_stats(), node_pool_destroy(), packet_queue_clear(), and packet_queue_stop().
Referenced by add_client(), and cleanup_client_packet_queues().
| int packet_queue_enqueue | ( | packet_queue_t * | queue, |
| packet_type_t | type, | ||
| const void * | data, | ||
| size_t | data_len, | ||
| uint32_t | client_id, | ||
| bool | copy_data | ||
| ) |
Definition at line 185 of file packet_queue.c.
References buffer_pool_alloc(), buffer_pool_free(), buffer_pool_get_global(), node_pool_get(), and node_pool_put().
Referenced by client_audio_render_thread(), client_receive_thread(), and queue_audio_for_client().
| int packet_queue_enqueue_packet | ( | packet_queue_t * | queue, |
| const queued_packet_t * | packet | ||
| ) |
Definition at line 324 of file packet_queue.c.
References buffer_pool_alloc(), buffer_pool_free(), buffer_pool_get_global(), node_pool_get(), node_pool_put(), and packet_queue_validate_packet().
| void packet_queue_free_packet | ( | queued_packet_t * | packet | ) |
Definition at line 548 of file packet_queue.c.
References buffer_pool_free().
Referenced by client_dispatch_thread(), client_send_thread_func(), and packet_queue_clear().
| void packet_queue_get_stats | ( | packet_queue_t * | queue, |
| uint64_t * | enqueued, | ||
| uint64_t * | dequeued, | ||
| uint64_t * | dropped | ||
| ) |
Definition at line 617 of file packet_queue.c.
Referenced by stats_logger_thread().
| bool packet_queue_is_empty | ( | packet_queue_t * | queue | ) |
| bool packet_queue_is_full | ( | packet_queue_t * | queue | ) |
Definition at line 587 of file packet_queue.c.
| size_t packet_queue_size | ( | packet_queue_t * | queue | ) |
Definition at line 575 of file packet_queue.c.
Referenced by client_audio_render_thread(), and packet_queue_is_empty().
| void packet_queue_stop | ( | packet_queue_t * | queue | ) |
Definition at line 596 of file packet_queue.c.
Referenced by disconnect_client_for_bad_data(), packet_queue_destroy(), and remove_client().
| queued_packet_t * packet_queue_try_dequeue | ( | packet_queue_t * | queue | ) |
Definition at line 464 of file packet_queue.c.
References buffer_pool_free(), and node_pool_put().
Referenced by client_dispatch_thread(), client_send_thread_func(), packet_queue_clear(), and packet_queue_dequeue().
| bool packet_queue_validate_packet | ( | const queued_packet_t * | packet | ) |
Definition at line 630 of file packet_queue.c.
Referenced by packet_queue_enqueue_packet().