Análisis de seguridad de subprocesos de Clang con la biblioteca estándar de C++

 C Programming >> Programación C >  >> Tags >> Clang
Análisis de seguridad de subprocesos de Clang con la biblioteca estándar de C++


Esto describe cómo se puede realizar un análisis de seguridad de subprocesos estáticos con anotaciones en C++:http://clang.llvm.org/docs/ThreadSafetyAnalysis.html


¿Cómo puedo usar esto con tipos estándar como std::mutex y std::lock_guard?


El código de ejemplo de mutex.h anota una interfaz personalizada. ¿Tengo el tipo "Mutex" que se define allí e implemento una clase usando std::mutex con los métodos anotados o Clang trae tipos anotados de alguna manera?


Respuestas:


En versiones recientes de clang, probablemente ya no tengas que envolver std::mutex, porque las anotaciones de seguridad de subprocesos se incluyen desde el 15 de marzo de 2016.



Así que simplemente tener -Wthread-safety debería ser suficiente.


Algunas respuestas de código


class CAPABILITY("mutex") Mutex { private:   std::mutex std_mutex;
public: // Acquire/lock this mutex exclusively. Only one thread can have exclusive // access at any one time. Write operations to guarded data require an // exclusive lock.
#include "mutex.h"  void Mutex::Lock(){   this->std_mutex.lock();
} void Mutex::Unlock(){ this->std_mutex.unlock();
} bool Mutex::TryLock(){ return this->std_mutex.try_lock();
}