Concurrency (CON)
- CON01-C. Acquire and release synchronization primitives in the same module, at the same level of abstraction
- CON02-C. Do not use volatile as a synchronization primitive
- CON03-C. Ensure visibility when accessing shared variables
- CON04-C. Join or detach threads even if their exit status is unimportant
- CON05-C. Do not perform operations that can block while holding a lock
- CON06-C. Ensure that every mutex outlives the data it protects
- CON07-C. Ensure that compound operations on shared variables are atomic
- CON08-C. Do not assume that a group of calls to independently atomic methods is atomic
- CON09-C. Avoid the ABA problem when using lock-free algorithms
Information for Editors
To have a new guideline automatically listed above be sure to label it con and recommendation .
Risk Assessment Summary
| Rule | Severity | Likelihood | Detectable | Repairable | Priority | Level |
|---|---|---|---|---|---|---|
| CON01-C | Low | Probable | Yes | No | P4 | L3 |
| CON02-C | Medium | Probable | No | No | P4 | L3 |
| CON04-C | Low | Unlikely | Yes | No | P2 | L3 |
| CON05-C | Low | Probable | No | No | P2 | L3 |
| CON06-C | Medium | Probable | No | No | P4 | L3 |
| CON07-C | Medium | Probable | Yes | No | P8 | L2 |
| CON08-C | Low | Probable | No | No | P2 | L3 |
| CON09-C | Medium | Unlikely | No | No | P2 | L3 |


