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
ЕГО Метрика: Нет
Введенный в R2018b