CertC++-CONΒΆ

Concurrency

Nested Rules

CertC++-CON33

Avoid race conditions when using library functions

CertC++-CON37

Do not call signal() in a multithreaded program

CertC++-CON40

Do not refer to an atomic variable twice in an expression

CertC++-CON41

Wrap functions that can fail spuriously in a loop

CertC++-CON43

Do not allow data races in multithreaded code

CertC++-CON50

Do not destroy a mutex while it is locked

CertC++-CON51

Ensure actively held locks are released on exceptional conditions

CertC++-CON52

Prevent data races when accessing bit-fields from multiple threads

CertC++-CON53

Avoid deadlock by locking in a predefined order

CertC++-CON54

Wrap functions that can spuriously wake up in a loop

CertC++-CON55

Preserve thread safety and liveness when using condition variables

CertC++-CON56

Do not speculatively lock a non-recursive mutex that is already owned by the calling thread

Options