Number of Potentially Unprotected Shared Variables

Количество незащищенных совместно используемых переменных

Описание

Эта метрика измеряет количество переменных со следующими свойствами:

  • Переменная используется больше чем в одной задаче.

  • По крайней мере одна операция на переменной не защищена от прерывания операциями в других задачах.

Примеры

развернуть все


#include <limits.h>
int shared_var;

void inc() {
    shared_var+=2;
}

void reset() {
    shared_var = 0;
}

void task() {
    volatile int randomValue = 0;
    while(randomValue) {
        reset();
        inc();
        inc();
    }
}

void interrupt() {
    shared_var = INT_MAX;
}

void interrupt_handler() {
    volatile int randomValue = 0;
    while(randomValue) {
        interrupt();
    }
}

void main() {
}

В этом примере Polyspace® вычисляет количество потенциально незащищенной совместно используемой переменной, чтобы быть тем. Разделяемая переменная shared_var незащищен, если вы задаете task и interrupt_handler как точки входа и не задают механизмы защиты.

Операция shared_var = INT_MAX может прервать другие операции на shared_var и вызовите непредсказуемое поведение.

Метрическая информация

Группа: проект
Акроним: UNPSHV
Метрика HIS: нет

Смотрите также

Введенный в R2018b