This example records semantic design knowledge as ordinary documentation. It is not a Bridge artifact and does not establish that any evidence ran.
| Property | Design |
|---|---|
| Source | artifact/lib/ring/rte_ring_elem_pvt.h, move_prod_head return site |
| Trigger | After reservation |
| Capture timing | Post-state |
| Snapshot strength | Weak |
| Collection | Instrumentation |
| Semantic scope | Base and trace semantics |
| Captures | Thread ID, batch size, prodHead, consHead |
| Maps to | MPMCReserveProd, HTSReserveProd, RTSReserveProd |
| Used by | Trace validation and differential tests |
The weak snapshot at reservation is acceptable because the opposing tail may be stabilized later by acquire semantics inside the CAS loop.
| Property | Design |
|---|---|
| Source | artifact/lib/ring/rte_ring_c11_pvt.h, __rte_ring_update_tail and mode-specific update_tail return sites |
| Trigger | After publication |
| Capture timing | Post-state |
| Snapshot strength | Strong |
| Collection | Instrumentation |
| Semantic scope | Base and trace semantics |
| Captures | prodHead, prodTail, consHead, consTail, prodCnt, prodTailCnt |
| Maps to | MPMCPublishTail, HTSPublishTail, RTSPublishTail, TailProgress |
| Used by | Trace validation, runtime assertions, and differential tests |
PublishTail is the linearization point for visibility of produced elements.
| Property | Design |
|---|---|
| Source | harness/traces/concurrent_mpmc.ndjson, derived from timestamp order |
| Trigger | Derived |
| Capture timing | Mixed |
| Snapshot strength | Derived |
| Collection | Replay |
| Semantic scope | Trace semantics |
| Captures | Timestamp and event order |
| Maps to | Trace-ordering assumption |
| Used by | Trace validation |
Concurrent trace consumers trust timestamp ordering over mutex-serialized emission order when the two conflict. Any change to timestamp generation, buffering, or emission serialization requires review of this rule and rerunning the registered trace evidence.
Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |