C and C++

CodeSonar Concurrency Models

CodeSonar ships with library models for concurrency libraries as well as for many other standard libraries. These models support checks for the CONCURRENCY.* warning classes, including Missing Lock Acquisition and Locked Twice.

The concurrency models for CodeSonar fall into four categories. Each category has its own documentation section that includes a list of the models shipped with CodeSonar and notes on creating your own models with the Extension API.

Operations on Locks Lock acquisition and release models support the checks for the CONCURRENCY.LOCK.* warning classes, as well as those for Blocking in Critical Section and Data Race.
Thread Entry Points Identify thread entry points and signal handler entry points for the Data Race check.
Data Race Exclusion Identify data, operations, and functions that cannot lead to a data race (and so should be ignored by the Data Race check).
Blocking Functions Identify functions that should trigger Blocking in Critical Section warnings if they are called inside a critical section.