aboutsummaryrefslogtreecommitdiff
path: root/src/rungaurd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/rungaurd.cpp')
-rw-r--r--src/rungaurd.cpp104
1 files changed, 46 insertions, 58 deletions
diff --git a/src/rungaurd.cpp b/src/rungaurd.cpp
index 7136e7b..887eaf0 100644
--- a/src/rungaurd.cpp
+++ b/src/rungaurd.cpp
@@ -2,78 +2,66 @@
#include <QCryptographicHash>
-namespace
-{
+namespace {
- QString generateKeyHash( const QString& key, const QString& salt )
- {
- QByteArray data;
+QString generateKeyHash(const QString &key, const QString &salt) {
+ QByteArray data;
- data.append( key.toUtf8() );
- data.append( salt.toUtf8() );
- data = QCryptographicHash::hash( data, QCryptographicHash::Sha1 ).toHex();
-
- return data;
- }
+ data.append(key.toUtf8());
+ data.append(salt.toUtf8());
+ data = QCryptographicHash::hash(data, QCryptographicHash::Sha1).toHex();
+ return data;
}
-
-RunGuard::RunGuard( const QString& key )
- : key( key )
- , memLockKey( generateKeyHash( key, "_memLockKey" ) )
- , sharedmemKey( generateKeyHash( key, "_sharedmemKey" ) )
- , sharedMem( sharedmemKey )
- , memLock( memLockKey, 1 )
-{
- memLock.acquire();
- {
- QSharedMemory fix( sharedmemKey ); // Fix for *nix: http://habrahabr.ru/post/173281/
- fix.attach();
- }
- memLock.release();
+} // namespace
+
+RunGuard::RunGuard(const QString &key)
+ : key(key), memLockKey(generateKeyHash(key, "_memLockKey")),
+ sharedmemKey(generateKeyHash(key, "_sharedmemKey")),
+ sharedMem(sharedmemKey), memLock(memLockKey, 1) {
+ memLock.acquire();
+ {
+ QSharedMemory fix(
+ sharedmemKey); // Fix for *nix: http://habrahabr.ru/post/173281/
+ fix.attach();
+ }
+ memLock.release();
}
-RunGuard::~RunGuard()
-{
- release();
-}
+RunGuard::~RunGuard() { release(); }
-bool RunGuard::isAnotherRunning()
-{
- if ( sharedMem.isAttached() )
- return false;
+bool RunGuard::isAnotherRunning() {
+ if (sharedMem.isAttached())
+ return false;
- memLock.acquire();
- const bool isRunning = sharedMem.attach();
- if ( isRunning )
- sharedMem.detach();
- memLock.release();
+ memLock.acquire();
+ const bool isRunning = sharedMem.attach();
+ if (isRunning)
+ sharedMem.detach();
+ memLock.release();
- return isRunning;
+ return isRunning;
}
-bool RunGuard::tryToRun()
-{
- if ( isAnotherRunning() ) // Extra check
- return false;
+bool RunGuard::tryToRun() {
+ if (isAnotherRunning()) // Extra check
+ return false;
- memLock.acquire();
- const bool result = sharedMem.create( sizeof( quint64 ) );
- memLock.release();
- if ( !result )
- {
- release();
- return false;
- }
+ memLock.acquire();
+ const bool result = sharedMem.create(sizeof(quint64));
+ memLock.release();
+ if (!result) {
+ release();
+ return false;
+ }
- return true;
+ return true;
}
-void RunGuard::release()
-{
- memLock.acquire();
- if ( sharedMem.isAttached() )
- sharedMem.detach();
- memLock.release();
+void RunGuard::release() {
+ memLock.acquire();
+ if (sharedMem.isAttached())
+ sharedMem.detach();
+ memLock.release();
}