Added Q_FUNC_INFO macros to some functions.
[qtrapids] / src / server / AlertWaiterThread.cpp
index 77e7767..c41ea29 100644 (file)
@@ -1,11 +1,9 @@
 /***************************************************************************
- *   Copyright (C) 2009 by Lassi Väätämöinen   *
- *   lassi.vaatamoinen@ixonos.com   *
+ *   Copyright (C) 2010 by Ixonos Plc   *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
- *   the Free Software Foundation; either version 2 of the License, or     *
- *   (at your option) any later version.                                   *
+ *   the Free Software Foundation; version 2 of the License.               *
  *                                                                         *
  *   This program is distributed in the hope that it will be useful,       *
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
@@ -33,7 +31,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 +58,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 +69,13 @@ void AlertWaiterThread::run()
        }
 }
 
+
+void AlertWaiterThread::stop()
+{
+       alertMutex_.lock();
+       running_ = false;
+       alertMutex_.unlock();
 }
+
+
+} // namespace qtrapids