Main Content

Multitasking

Multitasking options, entry points, critical sections, exclusive tasks

To set up verification of multiple tasks or threads that run concurrently, use the multitasking options. Polyspace® can automatically detect and interpret certain families of multitasking functions. Unless you use these functions, you must explicitly specify which functions in your code indicate entry points, cyclic tasks, or interrupts. You must also specify the protection mechanisms for shared variables. Bug Finder uses these specifications to detect data races, deadlocks, double locks, and other concurrency issues.

Polyspace Options

expand all

External multitasking configurationEnable setup of multitasking configuration from external file definitions
OIL files selection (-osek-multitasking)Set up multitasking configuration from OIL file definition
ARXML files selection (-autosar-multitasking)Set up multitasking configuration from ARXML file definitions
Configure multitasking manuallyConsider that code is intended for multitasking
Tasks (-entry-points)Specify functions that serve as tasks to your multitasking application
Cyclic tasks (-cyclic-tasks)Specify functions that represent cyclic tasks
Interrupts (-interrupts)Specify functions that represent nonpreemptable interrupts
Disabling all interrupts (-routine-disable-interrupts -routine-enable-interrupts)Specify routines that disable and reenable interrupts.
Critical section details (-critical-section-begin -critical-section-end)Specify functions that begin and end critical sections
Temporally exclusive tasks (-temporal-exclusions-file)Specify entry point functions that cannot execute concurrently
-disable-concurrency-detectionDisable automatic detection of multitasking functions
-detect-atomic-data-raceEnable detecting data race with atomic operation
-preemptable-interruptsSpecify functions that represent preemptable interrupts
-non-preemptable-tasksSpecify functions that represent nonpreemptable tasks

Related Information