X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fserver%2FAlertWaiterThread.cpp;fp=src%2Fserver%2FAlertWaiterThread.cpp;h=6c73330ba457d39df8fbf6bf50ffe9ba290f06d9;hb=5e2c71d43ef7d91dbde62ee5a507e570d7619d1b;hp=77e77677fe5668d00b0328de76fcf49a454f45e6;hpb=e27002978511dc6be46ebb3ea35851a17bf19e93;p=qtrapids diff --git a/src/server/AlertWaiterThread.cpp b/src/server/AlertWaiterThread.cpp index 77e7767..6c73330 100644 --- a/src/server/AlertWaiterThread.cpp +++ b/src/server/AlertWaiterThread.cpp @@ -33,7 +33,9 @@ const libtorrent::time_duration ALERT_WAIT_TIMEOUT AlertWaiterThread::AlertWaiterThread(session_t *session, QObject* parent) : QThread(parent), - btSession_(session) + btSession_(session), + running_(false), + alertMutex_() { } @@ -58,7 +60,8 @@ void AlertWaiterThread::allAlerts(bool enable) void AlertWaiterThread::run() { alert_t const *alertTemp = NULL; - while (true) { + running_ = true; + while (running_) { // wait_for_alert() call blocks. Returns libtorrent alert. // Returns NULL, if no alerts in timeout period. alertTemp = btSession_->wait_for_alert(ALERT_WAIT_TIMEOUT); @@ -68,4 +71,13 @@ void AlertWaiterThread::run() } } + +void AlertWaiterThread::stop() +{ + alertMutex_.lock(); + running_ = false; + alertMutex_.unlock(); } + + +} // namespace qtrapids