|
ascii-chat 0.8.38
Real-time terminal-based video chat with ASCII art conversion
|
💾 Lock-free memory pool with atomic operations More...
Go to the source code of this file.
Functions | |
| buffer_pool_t * | buffer_pool_create (size_t max_bytes, uint64_t shrink_delay_ns) |
| void | buffer_pool_destroy (buffer_pool_t *pool) |
| void * | buffer_pool_alloc (buffer_pool_t *pool, size_t size) |
| void | buffer_pool_free (buffer_pool_t *pool, void *data, size_t size) |
| void | buffer_pool_shrink (buffer_pool_t *pool) |
| void | buffer_pool_get_stats (buffer_pool_t *pool, size_t *current_bytes, size_t *used_bytes, size_t *free_bytes) |
| void | buffer_pool_log_stats (buffer_pool_t *pool, const char *name) |
| void | buffer_pool_init_global (void) |
| void | buffer_pool_cleanup_global (void) |
| buffer_pool_t * | buffer_pool_get_global (void) |
💾 Lock-free memory pool with atomic operations
Definition in file buffer_pool.c.
| void * buffer_pool_alloc | ( | buffer_pool_t * | pool, |
| size_t | size | ||
| ) |
Definition at line 99 of file buffer_pool.c.
References buffer_pool_get_global().
Referenced by acip_send_ascii_frame(), acip_send_audio_batch(), acip_send_audio_opus_batch(), acip_send_error(), acip_send_image_frame(), acip_send_remote_log(), acip_server_receive_and_dispatch(), av_send_audio_opus_batch(), client_handle_auth_challenge(), client_handle_handshake_complete(), client_handle_key_exchange_init(), framebuffer_peek_latest_multi_frame(), framebuffer_write_frame(), framebuffer_write_multi_frame(), image_new_from_pool(), packet_queue_enqueue(), packet_queue_enqueue_packet(), packet_receive(), process_encrypted_packet(), receive_packet_secure(), send_ascii_frame_packet(), send_audio_batch_packet(), send_image_frame_packet(), send_packet_secure(), threaded_send_audio_opus(), and video_frame_buffer_create().
| void buffer_pool_cleanup_global | ( | void | ) |
Definition at line 398 of file buffer_pool.c.
References buffer_pool_destroy(), and buffer_pool_log_stats().
Referenced by asciichat_shared_destroy(), and server_main().
| buffer_pool_t * buffer_pool_create | ( | size_t | max_bytes, |
| uint64_t | shrink_delay_ns | ||
| ) |
Definition at line 48 of file buffer_pool.c.
References format_bytes_pretty(), and mutex_init().
Referenced by buffer_pool_init_global(), and packet_queue_create_with_pools().
| void buffer_pool_destroy | ( | buffer_pool_t * | pool | ) |
Definition at line 83 of file buffer_pool.c.
References mutex_destroy().
Referenced by buffer_pool_cleanup_global(), and packet_queue_destroy().
| void buffer_pool_free | ( | buffer_pool_t * | pool, |
| void * | data, | ||
| size_t | size | ||
| ) |
Definition at line 204 of file buffer_pool.c.
References buffer_pool_shrink(), and time_get_ns().
Referenced by acds_client_handler(), acds_session_create(), acds_session_join(), acds_session_lookup(), acip_client_receive_and_dispatch(), acip_send_ascii_frame(), acip_send_audio_batch(), acip_send_audio_opus_batch(), acip_send_error(), acip_send_image_frame(), acip_send_remote_log(), acip_server_receive_and_dispatch(), add_client(), audio_ring_buffer_destroy(), av_send_audio_opus_batch(), client_crypto_handshake(), client_receive_thread(), crypto_handshake_client_auth_response(), crypto_handshake_client_auth_response_socket(), crypto_handshake_client_complete(), crypto_handshake_client_complete_socket(), crypto_handshake_client_key_exchange(), crypto_handshake_client_key_exchange_socket(), crypto_handshake_server_auth_challenge_socket(), crypto_handshake_server_complete_socket(), discovery_session_process(), framebuffer_clear(), framebuffer_write_frame(), framebuffer_write_multi_frame(), image_destroy(), image_destroy_to_pool(), packet_queue_enqueue(), packet_queue_enqueue_packet(), packet_queue_free_packet(), packet_queue_try_dequeue(), packet_receive(), process_encrypted_packet(), receive_packet_secure(), send_ascii_frame_packet(), send_audio_batch_packet(), send_image_frame_packet(), send_packet_secure(), server_crypto_handshake(), threaded_send_audio_opus(), and video_frame_buffer_destroy().
| buffer_pool_t * buffer_pool_get_global | ( | void | ) |
Definition at line 408 of file buffer_pool.c.
Referenced by buffer_pool_alloc(), packet_queue_enqueue(), packet_queue_enqueue_packet(), video_frame_buffer_create(), and video_frame_buffer_destroy().
| void buffer_pool_get_stats | ( | buffer_pool_t * | pool, |
| size_t * | current_bytes, | ||
| size_t * | used_bytes, | ||
| size_t * | free_bytes | ||
| ) |
Definition at line 322 of file buffer_pool.c.
| void buffer_pool_init_global | ( | void | ) |
Definition at line 387 of file buffer_pool.c.
References buffer_pool_create().
Referenced by asciichat_shared_init().
| void buffer_pool_log_stats | ( | buffer_pool_t * | pool, |
| const char * | name | ||
| ) |
Definition at line 344 of file buffer_pool.c.
References format_bytes_pretty().
Referenced by buffer_pool_cleanup_global(), and packet_queue_destroy().
| void buffer_pool_shrink | ( | buffer_pool_t * | pool | ) |
Definition at line 258 of file buffer_pool.c.
References time_get_ns().
Referenced by buffer_pool_free().