Skip to content

Commit

Permalink
make initialization of connection pool thread save on MSVC
Browse files Browse the repository at this point in the history
(cherry picked from commit c550af2 and 1e96813)
  • Loading branch information
jef-n committed Jun 29, 2015
1 parent b97d46c commit daa909f
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 16 deletions.
14 changes: 2 additions & 12 deletions src/providers/postgres/qgspostgresconnpool.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,11 @@
#include "qgspostgresconnpool.h"
#include "qgspostgresconn.h"

QgsPostgresConnPool QgsPostgresConnPool::sInstance;

QgsPostgresConnPool* QgsPostgresConnPool::instance()
{
static QgsPostgresConnPool *sInstance = 0;

if ( !sInstance )
{
static QMutex m;
m.lock();
if ( !sInstance )
sInstance = new QgsPostgresConnPool();
m.unlock();
}

return sInstance;
return &sInstance;
}

QgsPostgresConnPool::QgsPostgresConnPool() : QgsConnectionPool<QgsPostgresConn*, QgsPostgresConnPoolGroup>()
Expand Down
3 changes: 2 additions & 1 deletion src/providers/postgres/qgspostgresconnpool.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
#define QGSPOSTGRESCONNPOOL_H

#include "qgsconnectionpool.h"

#include "qgspostgresconn.h"


Expand Down Expand Up @@ -66,6 +65,8 @@ class QgsPostgresConnPool : public QgsConnectionPool<QgsPostgresConn*, QgsPostgr
private:
QgsPostgresConnPool();
~QgsPostgresConnPool();

static QgsPostgresConnPool sInstance;
};


Expand Down
2 changes: 1 addition & 1 deletion src/providers/spatialite/qgsspatialiteconnpool.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@

#include "qgsspatialiteconnpool.h"

QgsSpatiaLiteConnPool QgsSpatiaLiteConnPool::sInstance;

QgsSpatiaLiteConnPool* QgsSpatiaLiteConnPool::instance()
{
static QgsSpatiaLiteConnPool sInstance;
return &sInstance;
}
3 changes: 1 addition & 2 deletions src/providers/spatialite/qgsspatialiteconnpool.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
#define QGSSPATIALITECONPOOL_H

#include "qgsconnectionpool.h"

#include "qgsspatialiteconnection.h"

inline QString qgsConnectionPool_ConnectionToName( QgsSqliteHandle* c )
Expand Down Expand Up @@ -56,9 +55,9 @@ class QgsSpatiaLiteConnPoolGroup : public QObject, public QgsConnectionPoolGroup
/** SpatiaLite connection pool - singleton */
class QgsSpatiaLiteConnPool : public QgsConnectionPool<QgsSqliteHandle*, QgsSpatiaLiteConnPoolGroup>
{
static QgsSpatiaLiteConnPool sInstance;
public:
static QgsSpatiaLiteConnPool* instance();

};


Expand Down

0 comments on commit daa909f

Please sign in to comment.