ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
callback_timing.h
Go to the documentation of this file.
1
13#ifndef WEBSOCKET_CALLBACK_TIMING_H
14#define WEBSOCKET_CALLBACK_TIMING_H
15
16#include <stdint.h>
17#include <ascii-chat/atomic.h>
19
25typedef struct {
26 atomic_t count; // Total invocations
27 atomic_t last_ns; // Last callback timestamp (nanoseconds)
28 atomic_t min_interval_ns; // Minimum interval between callbacks
29 atomic_t max_interval_ns; // Maximum interval between callbacks
30 atomic_t total_duration_ns; // Cumulative callback duration
32
44
51
59static inline uint64_t websocket_callback_timing_start(void) {
60 return time_get_ns();
61}
62
73
81
88
89#endif // WEBSOCKET_CALLBACK_TIMING_H
asciichat_error_stats_t stats
⚛️ Atomic operations abstraction layer with debug tracking
void websocket_callback_timing_reset(void)
Reset timing statistics.
websocket_callback_timing_t g_ws_callback_timing
Global timing tracker.
void websocket_callback_timing_record(websocket_callback_stats_t *stats, uint64_t start_ns, uint64_t end_ns)
Record callback invocation.
void websocket_callback_timing_log_stats(void)
Log current callback statistics.
unsigned long long uint64_t
Definition common.h:59
uint64_t time_get_ns(void)
Get current monotonic time in nanoseconds.
Definition util/time.c:108
Atomic value wrapper for integral/boolean types.
Definition atomic.h:76
Per-callback timing statistics.
WebSocket callback timing data for protocol lifecycle.
websocket_callback_stats_t receive
websocket_callback_stats_t protocol_destroy
websocket_callback_stats_t server_writeable
websocket_callback_stats_t protocol_init
⏱️ High-precision timing utilities using sokol_time.h and uthash