From 168ea8b0e1f0de5f508fba9489c15a8c1958334c Mon Sep 17 00:00:00 2001 From: seventh <43060508+Xseventh@users.noreply.github.com> Date: Wed, 9 Nov 2022 10:44:32 +0800 Subject: [PATCH] ensure singleton::get thread safe construct instance (#658) * ensure singleton::get thread safe construct instance * fix singleton return reference Co-authored-by: xuweiqi --- tools/library/src/singleton.cu | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/tools/library/src/singleton.cu b/tools/library/src/singleton.cu index 23ad294f..3f96a00b 100644 --- a/tools/library/src/singleton.cu +++ b/tools/library/src/singleton.cu @@ -42,10 +42,6 @@ namespace library { ///////////////////////////////////////////////////////////////////////////////////////////////// -static std::unique_ptr instance; - -///////////////////////////////////////////////////////////////////////////////////////////////// - Singleton::Singleton() { manifest.initialize(); @@ -54,10 +50,8 @@ Singleton::Singleton() { } Singleton const & Singleton::get() { - if (!instance.get()) { - instance.reset(new Singleton); - } - return *instance.get(); + static Singleton instance; + return instance; } /////////////////////////////////////////////////////////////////////////////////////////////////