C++コンパイラがローカル変数を処理する方法を理解していれば、IsShutdownInProgress()
は静的変数shutdownInProgress
がスタックに配置されるため、ロックを必要としません。私は正しいですか?オブジェクト値を返すときのミューテックス
class MyClass
{
private:
// Irrelevant code commented away
static pthread_mutex_t mutex;
static bool shutdownInProgress;
public:
static void ShutdownIsInProgress()
{
pthread_mutex_lock(mutex);
shutdownInProgress = true;
pthread_mutex_unlock(mutex);
}
static bool IsShutdownInProgress()
{
// pthread_mutex_lock(mutex);
// pthread_mutex_unlock(mutex);
return shutdownInProgress;
}
}