[metadata]
id = "CON09-C"
type = "recommendation"
category = "CON"
number = 9
title = "Avoid the ABA problem when using lock-free algorithms"
description = """
Lock-free programming is a technique that allows concurrent updates of shared
data structures without using explicit locks. This method ensures that no
threads block for arbitrarily long times, and it thereby boosts performance.
Lock-free programming has the following advantages: Lock-free programming
requires the use of special atomic processor instructions, such as CAS (compare
and swap), LL/SC (load linked/store conditional), or the C
Standardatomic_compare_exchangegeneric functions.
"""
severity = "Medium"
likelihood = "Unlikely"
priority = "P2"
level = "L3"
cert_version = "2016 Edition (Wiki)"
last_modified = "Aug 21, 2025"
[rules.cert_c.CON09-C]
enabled = true
[references]
wiki = "https://wiki.sei.cmu.edu/confluence/display/c/CON09-C.+Avoid+the+ABA+problem+when+using+lock-free+algorithms"