Skip to content

Commit 6241d5a

Browse files
committed
rf
1 parent c295bb2 commit 6241d5a

File tree

2 files changed

+39
-0
lines changed

2 files changed

+39
-0
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# CON38-C: Preserve thread safety and liveness when using condition variables
2+
3+
This query implements the CERT-C rule CON38-C:
4+
5+
> Preserve thread safety and liveness when using condition variables
6+
## CERT
7+
8+
** REPLACE THIS BY RUNNING THE SCRIPT `scripts/help/cert-help-extraction.py` **
9+
10+
## Implementation notes
11+
12+
None
13+
14+
## References
15+
16+
* CERT-C: [CON38-C: Preserve thread safety and liveness when using condition variables](https://wiki.sei.cmu.edu/confluence/display/c)
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/**
2+
* @id c/cert/preserve-safety-when-using-condition-variables
3+
* @name CON38-C: Preserve thread safety and liveness when using condition variables
4+
* @description Usages of `cnd_signal` with non-unique condition variables may impact thread safety
5+
* and liveness.
6+
* @kind problem
7+
* @precision very-high
8+
* @problem.severity error
9+
* @tags external/cert/id/con38-c
10+
* correctness
11+
* concurrency
12+
* external/cert/obligation/rule
13+
*/
14+
15+
import cpp
16+
import codingstandards.c.cert
17+
import codingstandards.cpp.rules.preservesafetywhenusingconditionvariables.PreserveSafetyWhenUsingConditionVariables
18+
19+
class PreserveSafetyWhenUsingConditionVariablesQuery extends PreserveSafetyWhenUsingConditionVariablesSharedQuery {
20+
PreserveSafetyWhenUsingConditionVariablesQuery() {
21+
this = Concurrency3Package::preserveSafetyWhenUsingConditionVariablesQuery()
22+
}
23+
}

0 commit comments

Comments
 (0)