How to use locking annotations in Visual Studio

Viewed 47

I'm trying to use locking annotations in MSVC to detect misuses of mutexes. I created a toy project with a simple main file

#include <Windows.h>

int main() {
    CRITICAL_SECTION my_mutex;
    InitializeCriticalSection(&my_mutex);
    _Guarded_by_(my_mutex)  int i = 0;
    ++i;
    DeleteCriticalSection(&my_mutex);
    return 0;
}

This is an incorrect usage. Since i is guarded by my_mutex, I should acquire the lock before incrementing it. However, neither building the project nor running code analysis inside Visual Studio Community 2022 give me any warnings or errors regarding this lock usage.

What did I do wrong?

0 Answers
Related