Well, it's about access serialization, so I would use QMutex:
// Singleton.h
#include <QMutex>
class Singleton
{
public:
static Singleton *getInstance();
private:
Singleton();
static Singleton *instance;
};
// Singleton.cpp
#include <QtDebug>
#include <QMutexLocker>
Singleton *Singleton::instance(0);
QMutex Singleton
::instanceMutex;
Singleton *Singleton::getInstance()
{
if (!instance) {
if (!instance) {
instance = new Singleton();
}
}
return instance;
}
Singleton::Singleton()
{
qDebug() << "Singleton ctor()";
}
// Singleton.h
#include <QMutex>
class Singleton
{
public:
static Singleton *getInstance();
private:
Singleton();
static Singleton *instance;
static QMutex instanceMutex;
};
// Singleton.cpp
#include <QtDebug>
#include <QMutexLocker>
Singleton *Singleton::instance(0);
QMutex Singleton::instanceMutex;
Singleton *Singleton::getInstance()
{
if (!instance) {
QMutexLocker instanceMutexLocker(&instanceMutex);
if (!instance) {
instance = new Singleton();
}
}
return instance;
}
Singleton::Singleton()
{
qDebug() << "Singleton ctor()";
}
To copy to clipboard, switch view to plain text mode
Bookmarks