ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
debug/atomic.h
Go to the documentation of this file.
1
11#pragma once
12
13#include <ascii-chat/atomic.h>
14
15#ifdef __cplusplus
16extern "C" {
17#endif
18
19// Forward declarations
20struct atomic_t;
21struct atomic_ptr; // Forward declaration for atomic_ptr_t if needed
22
31void debug_atomic_register(atomic_t *a, const char *name);
32
40
46void debug_atomic_ptr_register(_Atomic(void *) *a, const char *name);
47
52void debug_atomic_ptr_unregister(_Atomic(void *) *a);
53
64int debug_atomic_format_timing(const atomic_t *atomic, char *buffer, size_t size);
65
76int debug_atomic_ptr_format_timing(const atomic_ptr_t *atomic, char *buffer, size_t size);
77
84#ifndef NDEBUG
85void debug_atomic_init(void);
86
93void debug_atomic_shutdown(void);
94
102
110void debug_atomic_print_state(void);
111#endif
112
113#ifdef __cplusplus
114}
115#endif
⚛️ Atomic operations abstraction layer with debug tracking
int debug_atomic_ptr_format_timing(const atomic_ptr_t *atomic, char *buffer, size_t size)
Format timing info for an atomic_ptr_t to a buffer.
void debug_atomic_init(void)
Lifecycle initialization for debug atomic tracking.
void debug_atomic_register(atomic_t *a, const char *name)
Register an atomic_t in the debug named registry.
void debug_atomic_ptr_register(_Atomic(void *) *a, const char *name)
Register an _Atomic(void *) in the debug named registry.
void debug_atomic_print_state(void)
Print all named atomic operations state (integration with –sync-state)
void debug_atomic_shutdown(void)
Lifecycle shutdown for debug atomic tracking.
bool debug_atomic_is_initialized(void)
Check if debug atomic tracking is initialized.
void debug_atomic_unregister(atomic_t *a)
Unregister an atomic_t from the debug named registry.
int debug_atomic_format_timing(const atomic_t *atomic, char *buffer, size_t size)
Format timing info for an atomic_t to a buffer.
void debug_atomic_ptr_unregister(_Atomic(void *) *a)
Unregister an _Atomic(void *) from the debug named registry.
Atomic pointer wrapper.
Definition atomic.h:106
Atomic value wrapper for integral/boolean types.
Definition atomic.h:76