Duplex client has its own listener loop, so special care on reply is needed.
[mono.git] / mcs / class / System.Data / System.Data.SqlClient / SqlConnectionFactory.cs
index 626fe1ca4b2a40d2553d37c8752ea5b5cee8aaf1..457178e3de6f52c9f4b627c59bae2e4071f2baf6 100644 (file)
@@ -31,7 +31,6 @@
 
 using System.Data;
 using System.Data.Common;
-using System.Data.ProviderBase;
 
 namespace System.Data.SqlClient {
        internal class SqlConnectionFactory : DbConnectionFactory
@@ -39,6 +38,7 @@ namespace System.Data.SqlClient {
                #region Fields
                internal static SqlConnectionFactory Instance; // singleton
                 private static DbProviderFactory _providerFactory;
+               static readonly object lockobj = new object ();
                #endregion // Fields
 
                #region Constructors
@@ -58,17 +58,15 @@ namespace System.Data.SqlClient {
 
                #region Methods
 
-                // create singleton connection factory.
-                internal static DbConnectionFactory GetSingleton (DbProviderFactory pvdrFactory)
-                {
-                        lock (typeof (SqlConnectionFactory)) 
-                                {
-                                        if (Instance == null)
-                                                Instance = new SqlConnectionFactory (pvdrFactory);
-                                        return Instance;
-                                }
-                }
-                
+               // create singleton connection factory.
+               internal static DbConnectionFactory GetSingleton (DbProviderFactory pvdrFactory)
+               {
+                       lock (lockobj) {
+                               if (Instance == null)
+                                       Instance = new SqlConnectionFactory (pvdrFactory);
+                               return Instance;
+                       }
+               }
 
 
                [MonoTODO]