Как защитить mutex singletona
От: Аноним  
Дата: 06.04.11 05:22
Оценка:
Всем привет.
Вопрос по поводу реализации многопоточной защиты патерна singleton, везде описаны средтсва как защитить сам instance от опроса разными тредами, но как быть увереным, что сам объект синхронизации находится в валидном состоянии ?
Вот как пример

static InstanceTypeRef  getInstance()
{
    if( NULL == ms_instance )
    {
        static boost::mutex  instanceMutex;
        boost::lock_guard< boost::mutex >  sentinel( instanceMutex );
        if( NULL == ms_instance )
        {
            ms_instance = new InstanceType();
        }
    }
    return  * ms_instance;
}

Если какой то объект будет создан раньше того, как будет вызван этот Instance, и в своем, скажем деструкторе дернет этот Instance, то по идее instanceMutex будет уже не валидным Как можно защитится от этого ?

спс.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.