[Connection] Do not use Lazy for Singleton (#3888)
authorchleun-moon <32117100+chleun-moon@users.noreply.github.com>
Thu, 20 Jan 2022 10:58:25 +0000 (19:58 +0900)
committerGitHub <noreply@github.com>
Thu, 20 Jan 2022 10:58:25 +0000 (19:58 +0900)
* [Connection] Do not use Lazy for Singleton

* Update ConnectionInternalManager

src/Tizen.Network.Connection/Tizen.Network.Connection/ConnectionInternalManager.cs

index 643a121..41dbedc 100644 (file)
@@ -70,8 +70,8 @@ namespace Tizen.Network.Connection
 
     internal class ConnectionInternalManager
     {
-        private static readonly Lazy<ConnectionInternalManager> s_instance =
-            new Lazy<ConnectionInternalManager>(() => new ConnectionInternalManager());
+        private static ConnectionInternalManager s_instance = null;
+        private static readonly object _lock = new object();
 
         private EventHandler<ConnectionTypeEventArgs> _ConnectionTypeChanged = null;
         private EventHandler<AddressEventArgs> _IPAddressChanged = null;
@@ -91,8 +91,15 @@ namespace Tizen.Network.Connection
         {
             get
             {
-                Log.Info(Globals.LogTag, "ConnectionInternalManager.Instance");
-                return s_instance.Value;
+                lock (_lock)
+                {
+                    if (s_instance == null)
+                    {
+                        s_instance = new ConnectionInternalManager();
+                    }
+                    Log.Info(Globals.LogTag, "ConnectionInternalManager.Instance");
+                    return s_instance;
+                }
             }
         }