#define VER_LAMEXP_MINOR_LO 4
#define VER_LAMEXP_TYPE Alpha
#define VER_LAMEXP_PATCH 3
-#define VER_LAMEXP_BUILD 786
+#define VER_LAMEXP_BUILD 787
///////////////////////////////////////////////////////////////////////////////
// Tool versions (minimum expected versions!)
CPUObserverThread::CPUObserverThread(void)
{
- m_terminated = false;
}
CPUObserverThread::~CPUObserverThread(void)
void CPUObserverThread::run(void)
{
qDebug("CPU observer started!");
- m_terminated = false;
try
{
FatalAppExit(0, L"Unhandeled exception error, application will exit!");
TerminateProcess(GetCurrentProcess(), -1);
}
+
+ while(m_semaphore.available()) m_semaphore.tryAcquire();
}
ULONGLONG CPUObserverThread::filetime2ulonglong(const void *ftime)
sys[i] = 0; usr[i] = 0; idl[i] = 0;
}
- while(!m_terminated)
+ forever
{
if(getSystemTimes(&idlTime, &sysTime, &usrTime))
{
}
}
}
- for(int i = 0; i < 6; i++)
- {
- if(!m_terminated) msleep(333);
- }
+ if(m_semaphore.tryAcquire(1, 2000)) break;
}
}
else
#pragma once
#include <QThread>
+#include <QSemaphore>
class CPUObserverThread: public QThread
{
CPUObserverThread(void);
~CPUObserverThread(void);
- void stop(void) { m_terminated = true; }
+ void stop(void) { m_semaphore.release(); }
protected:
void run(void);
void currentUsageChanged(const double usage);
private:
- volatile bool m_terminated;
+ QSemaphore m_semaphore;
static inline unsigned __int64 filetime2ulonglong(const void *ftime);
};
:
m_path(makeRootDir(path))
{
- m_terminated = false;
}
DiskObserverThread::~DiskObserverThread(void)
void DiskObserverThread::run(void)
{
qDebug("DiskSpace observer started!");
- m_terminated = false;
try
{
FatalAppExit(0, L"Unhandeled exception error, application will exit!");
TerminateProcess(GetCurrentProcess(), -1);
}
+
+ while(m_semaphore.available()) m_semaphore.tryAcquire();
}
void DiskObserverThread::observe(void)
unsigned __int64 freeSpace, previousSpace = 0ui64;
bool ok = false;
- while(!m_terminated)
+ forever
{
freeSpace = lamexp_free_diskspace(m_path, &ok);
if(ok)
previousSpace = freeSpace;
}
}
- for(int i = 0; i < 6; i++)
- {
- if(!m_terminated) msleep(333);
- }
+ if(m_semaphore.tryAcquire(1, 2000)) break;
}
}
#pragma once
#include <QThread>
+#include <QSemaphore>
class DiskObserverThread: public QThread
{
DiskObserverThread(const QString &path);
~DiskObserverThread(void);
- void stop(void) { m_terminated = true; }
+ void stop(void) { m_semaphore.release(); }
protected:
void run(void);
void freeSpaceChanged(const quint64);
private:
- volatile bool m_terminated;
+ QSemaphore m_semaphore;
const QString m_path;
};
RAMObserverThread::RAMObserverThread(void)
{
- m_terminated = false;
}
RAMObserverThread::~RAMObserverThread(void)
void RAMObserverThread::run(void)
{
qDebug("RAM observer started!");
- m_terminated = false;
try
{
FatalAppExit(0, L"Unhandeled exception error, application will exit!");
TerminateProcess(GetCurrentProcess(), -1);
}
+
+ while(m_semaphore.available()) m_semaphore.tryAcquire();
}
void RAMObserverThread::observe(void)
MEMORYSTATUSEX memoryStatus;
double previous = -1.0;
- while(!m_terminated)
+ forever
{
memset(&memoryStatus, 0, sizeof(MEMORYSTATUSEX));
memoryStatus.dwLength = sizeof(MEMORYSTATUSEX);
previous = current;
}
}
- for(int i = 0; i < 6; i++)
- {
- if(!m_terminated) msleep(333);
- }
+ if(m_semaphore.tryAcquire(1, 2000)) break;
}
}
#pragma once
#include <QThread>
+#include <QSemaphore>
class RAMObserverThread: public QThread
{
RAMObserverThread(void);
~RAMObserverThread(void);
- void stop(void) { m_terminated = true; }
+ void stop(void) { m_semaphore.release(); }
protected:
void run(void);
void currentUsageChanged(const double usage);
private:
- volatile bool m_terminated;
+ QSemaphore m_semaphore;
};