Потокобезопасный синглтон с детерминированным разрушением

Я хочу создать потокобезопасный синглтон-класс.

Текущий способ достичь того же (о чем я знаю) — использование статического метода в классе, который возвращает статический объект, как показано ниже:

Singleton & Singleton::getInstance()
{
static Singleton instance;
return instance;
}

Проблема такого подхода заключается в том, что поскольку созданный объект является статическим, его очистка происходит при выходе из приложения. В идеале я хотел бы контролировать, когда именно произойдет разрушение.

Я немного покопался и обнаружил, что я могу использовать статический ptr для экземпляра и иметь отдельную функцию очистки, но чтобы сделать его потокобезопасным, мне придется использовать двойную проверку блокировки с явными барьерами памяти.

Есть ли более простой способ понять (я не эксперт) способ достичь того же?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector