Как показано, очевидно, нет.Однако, если я правильно читаю оставшуюся часть этого файла, SetLongevity
, в конечном счете, вызывается только изнутри функции, которая сама должным образом обернута в мьютекс [при условии, что вы просили, чтобы синглтон был поточно-ориентированным, очевидно]. Так что, хотя у этой конкретной функции есть проблемы, ее использование все еще совершенно безопасно.
Однако мьютекс, который они создают в этой базовой функции, параметризуется в зависимости от типа создаваемого вами синглтона, в то время какГлобальный указатель является общим для всех синглетонов.Так что да, похоже, что два разных объекта Singleton в двух разных потоках могут одновременно обращаться к этой функции, вызывая хаос.