Concurrency (CON)
- CON30-C. Clean up thread-specific storage
- CON31-C. Do not destroy a mutex while it is locked
- CON32-C. Prevent data races when accessing bit-fields from multiple threads
- CON33-C. Avoid race conditions when using library functions
- CON34-C. Declare objects shared between threads with appropriate storage durations
- CON35-C. Avoid deadlock by locking in a predefined order
- CON36-C. Wrap functions that can spuriously wake up in a loop
- CON37-C. Do not call signal() in a multithreaded program
- CON38-C. Preserve thread safety and liveness when using condition variables
- CON39-C. Do not join or detach a thread that was previously joined or detached
- CON40-C. Do not refer to an atomic variable twice in an expression
- CON41-C. Wrap functions that can fail spuriously in a loop
- CON43-C. Do not allow data races in multithreaded code
Information for Editors
To have a new guideline automatically listed above be sure to label it con and rule .
Risk Assessment Summary
| Rule | Severity | Likelihood | Detectable | Repairable | Priority | Level |
|---|---|---|---|---|---|---|
| CON30-C | Medium | Unlikely | No | No | P2 | L3 |
| CON31-C | Medium | Probable | No | No | P4 | L3 |
| CON32-C | Medium | Probable | No | No | P4 | L3 |
| CON33-C | Medium | Probable | No | No | P4 | L3 |
| CON34-C | Medium | Probable | No | No | P4 | L3 |
| CON35-C | Low | Probable | No | No | P2 | L3 |
| CON36-C | Low | Unlikely | Yes | No | P2 | L3 |
| CON37-C | Low | Probable | Yes | No | P4 | L3 |
| CON38-C | Low | Unlikely | No | Yes | P2 | L3 |
| CON39-C | Low | Likely | No | No | P3 | L3 |
| CON40-C | Medium | Probable | Yes | No | P8 | L2 |
| CON41-C | Low | Unlikely | Yes | No | P2 | L3 |
| CON43-C | Medium | Probable | No | No | P4 | L3 |


