Skip to content

C11 atomics platform

«interface»SolidSyslogAtomicCounterStdAtomicCounterStdAtomic

File SolidSyslogStdAtomicCounter.h

FileList > Interface > SolidSyslogStdAtomicCounter.h

  • #include "SolidSyslogExternC.h"

Detailed Description

An AtomicCounter over C11 <stdatomic.h>, backing the RFC 5424 sequenceId.

Increment runs an atomic_compare_exchange_strong_explicit CAS loop on an _Atomic uint32_t; the sequence is wrap-aware in [1, 2^31 - 1] and skips zero on wrap, so a returned value is never 0.

Public Functions Documentation

SolidSyslogStdAtomicCounter_Create

Create takes no config; an exhausted pool falls back to the shared NullAtomicCounter, whose Increment returns 1 unconditionally.

struct SolidSyslogAtomicCounter * SolidSyslogStdAtomicCounter_Create (
    void
) 


SolidSyslogStdAtomicCounter_Destroy

Release the pool slot; the counter's state is discarded.

void SolidSyslogStdAtomicCounter_Destroy (
    struct SolidSyslogAtomicCounter * base
) 



The documentation for this class was generated from the following file Platform/StdAtomic/Interface/SolidSyslogStdAtomicCounter.h