Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Kamm <mail@ckamm.de>2016-03-31 15:04:53 +0300
committerChristian Kamm <mail@ckamm.de>2016-03-31 16:44:42 +0300
commitfa1bb309caca72333459c08808d4adf0b81d62bf (patch)
treefa1bbd1ec2b3d0f602eee55728b577b2a9448d6d /src/gui/folderwatcher_win.h
parente05819370b9e42c8e12674e532cae5f71eb7751e (diff)
Graceful termination of folderwatcher_win #4620
Diffstat (limited to 'src/gui/folderwatcher_win.h')
-rw-r--r--src/gui/folderwatcher_win.h17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/gui/folderwatcher_win.h b/src/gui/folderwatcher_win.h
index 4a72be4ca..9e5e941e3 100644
--- a/src/gui/folderwatcher_win.h
+++ b/src/gui/folderwatcher_win.h
@@ -15,6 +15,7 @@
#define MIRALL_FOLDERWATCHER_WIN_H
#include <QThread>
+#include <QAtomicInt>
#include <windows.h>
namespace OCC {
@@ -29,21 +30,33 @@ class WatcherThread : public QThread {
Q_OBJECT
public:
WatcherThread(const QString &path) :
- QThread(), _path(path), _handle(0) {}
+ QThread(),
+ _path(path),
+ _directory(0),
+ _resultEvent(0),
+ _stopEvent(0),
+ _done(false)
+ {}
~WatcherThread();
+ void stop();
+
protected:
void run();
void watchChanges(size_t fileNotifyBufferSize,
bool* increaseBufferSize);
+ void closeHandle();
signals:
void changed(const QString &path);
private:
QString _path;
- HANDLE _handle;
+ HANDLE _directory;
+ HANDLE _resultEvent;
+ HANDLE _stopEvent;
+ QAtomicInt _done;
};
/**