diff options
author | 2022-05-10 10:09:15 +0530 | |
---|---|---|
committer | 2022-05-10 10:09:15 +0530 | |
commit | 8c0df6d34bba406e4d8e2711e4f5134a24107b2e (patch) | |
tree | f2fc168294b024289f40fd8351abb8f26d305e76 /src | |
parent | 7d3024668b3cb1b8f530220dfcf130d9acba8dee (diff) | |
download | whatsie-8c0df6d34bba406e4d8e2711e4f5134a24107b2e.tar.gz whatsie-8c0df6d34bba406e4d8e2711e4f5134a24107b2e.zip |
chore: remove runguard
Diffstat (limited to 'src')
-rw-r--r-- | src/rungaurd.cpp | 67 | ||||
-rw-r--r-- | src/rungaurd.h | 32 |
2 files changed, 0 insertions, 99 deletions
diff --git a/src/rungaurd.cpp b/src/rungaurd.cpp deleted file mode 100644 index 887eaf0..0000000 --- a/src/rungaurd.cpp +++ /dev/null @@ -1,67 +0,0 @@ -#include "rungaurd.h" - -#include <QCryptographicHash> - -namespace { - -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; -} - -} // 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(); } - -bool RunGuard::isAnotherRunning() { - if (sharedMem.isAttached()) - return false; - - memLock.acquire(); - const bool isRunning = sharedMem.attach(); - if (isRunning) - sharedMem.detach(); - memLock.release(); - - return isRunning; -} - -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; - } - - return true; -} - -void RunGuard::release() { - memLock.acquire(); - if (sharedMem.isAttached()) - sharedMem.detach(); - memLock.release(); -} diff --git a/src/rungaurd.h b/src/rungaurd.h deleted file mode 100644 index 06d45a8..0000000 --- a/src/rungaurd.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef RUNGUARD_H -#define RUNGUARD_H - -#include <QObject> -#include <QSharedMemory> -#include <QSystemSemaphore> - - -class RunGuard -{ - -public: - RunGuard( const QString& key ); - ~RunGuard(); - - bool isAnotherRunning(); - bool tryToRun(); - void release(); - -private: - const QString key; - const QString memLockKey; - const QString sharedmemKey; - - QSharedMemory sharedMem; - QSystemSemaphore memLock; - - Q_DISABLE_COPY( RunGuard ) -}; - - -#endif // RUNGUARD_H |