ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
callback_timing.h
Go to the documentation of this file.
1
12
13#ifndef WEBSOCKET_CALLBACK_TIMING_H
14#define WEBSOCKET_CALLBACK_TIMING_H
15
16#include <stdint.h>
17#include <libplatform/atomic.h>
19
27typedef struct {
28 atomic_t count; // Total invocations
29 atomic_t last_ns; // Last callback timestamp (nanoseconds)
30 atomic_t min_interval_ns; // Minimum interval between callbacks
31 atomic_t max_interval_ns; // Maximum interval between callbacks
32 atomic_t total_duration_ns; // Cumulative callback duration
34
46
53
61static inline uint64_t websocket_callback_timing_start(void) {
62 return time_get_ns();
63}
64
75
83
90
91#endif // WEBSOCKET_CALLBACK_TIMING_H
websocket_callback_timing_t g_ws_callback_timing
Global timing tracker - shared across all WebSocket connections.
void websocket_callback_timing_reset(void)
Reset timing statistics.
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:63
Counters and timing aggregates for one WebSocket callback kind.
Timing aggregates for protocol-init, teardown, writable, and receive callbacks.
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