diff options
-rw-r--r-- | consistencycheck.cpp | 4 | ||||
-rw-r--r-- | consistencycheck.h | 1 | ||||
-rw-r--r-- | smdirmodel.cpp | 1 | ||||
-rw-r--r-- | smdirwatcher.cpp | 10 |
4 files changed, 16 insertions, 0 deletions
diff --git a/consistencycheck.cpp b/consistencycheck.cpp index 7e463a2..1583093 100644 --- a/consistencycheck.cpp +++ b/consistencycheck.cpp @@ -101,6 +101,10 @@ ConsistencyCheck::ConsistencyCheck(QWidget *parent, Qt::WindowFlags f) : SmDialo setMinimumWidth(600); } +ConsistencyCheck::~ConsistencyCheck(){ + mChecker->deleteLater(); +} + void ConsistencyCheck::setProgressBarMax(int max){ mProgress->reset(); mProgress->setMaximum(max); diff --git a/consistencycheck.h b/consistencycheck.h index ca078f1..6f54dcb 100644 --- a/consistencycheck.h +++ b/consistencycheck.h @@ -30,6 +30,7 @@ class ConsistencyCheck : public SmDialog { public: enum Mode { DbCheck, FsCheck }; explicit ConsistencyCheck(QWidget *parent = 0, Qt::WindowFlags f = 0); + ~ConsistencyCheck(); public slots: void setProgressBarMax(int max); diff --git a/smdirmodel.cpp b/smdirmodel.cpp index 8a403d1..2b1e7dc 100644 --- a/smdirmodel.cpp +++ b/smdirmodel.cpp @@ -38,6 +38,7 @@ SmDirModel::~SmDirModel(){ if(mWatch->isRunning()){ mWatch->stop(); } + mWatch->deleteLater(); } QVariant SmDirModel::data(const QModelIndex &index, int role) const{ diff --git a/smdirwatcher.cpp b/smdirwatcher.cpp index 038c4cf..5b4f42a 100644 --- a/smdirwatcher.cpp +++ b/smdirwatcher.cpp @@ -11,6 +11,7 @@ #include <sys/inotify.h> #include <unistd.h> +#include <poll.h> #include "smdirmodel.h" #include "smdirwatcher.h" @@ -116,6 +117,14 @@ QList<QVariant> SmDirWatcher::generalData(const QString &path){ } void SmDirWatcher::run(){ + struct pollfd pfd[1]; + pfd[0].fd = mFd; + pfd[0].events = POLLIN; + pfd[0].revents = 0; + int pr = poll(pfd, 1, 0); + if(pr <= 0){ + return; + } int r = read(mFd, mINdata, mBufLen); if(r <= 0){ return; @@ -145,6 +154,7 @@ void SmDirWatcher::run(){ void SmDirWatcher::stop(){ quit(); + wait(); } AsyncTask::AsyncTask(const QString &path) : mSkip(false), mPath(path) {} |