diff options
Diffstat (limited to 'Swiften/EventLoop/SingleThreadedEventLoop.cpp')
-rw-r--r-- | Swiften/EventLoop/SingleThreadedEventLoop.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/Swiften/EventLoop/SingleThreadedEventLoop.cpp b/Swiften/EventLoop/SingleThreadedEventLoop.cpp index acb6e4d..0542f37 100644 --- a/Swiften/EventLoop/SingleThreadedEventLoop.cpp +++ b/Swiften/EventLoop/SingleThreadedEventLoop.cpp @@ -1,62 +1,61 @@ /* * Copyright (c) 2010 Soren Dreijer * Licensed under the simplified BSD license. * See Documentation/Licenses/BSD-simplified.txt for more information. */ /* * Copyright (c) 2016 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ #include <Swiften/EventLoop/SingleThreadedEventLoop.h> #include <iostream> #include <boost/bind.hpp> -#include <Swiften/Base/foreach.h> - namespace Swift { SingleThreadedEventLoop::SingleThreadedEventLoop() : shouldShutDown_(false), eventAvailable_(false) { } SingleThreadedEventLoop::~SingleThreadedEventLoop() { } void SingleThreadedEventLoop::waitForEvents() { std::unique_lock<std::mutex> lock(eventAvailableMutex_); while (!eventAvailable_ && !shouldShutDown_) { eventAvailableCondition_.wait(lock); } - if (shouldShutDown_) + if (shouldShutDown_) { throw EventLoopCanceledException(); + } } void SingleThreadedEventLoop::handleEvents() { { std::lock_guard<std::mutex> lock(eventAvailableMutex_); eventAvailable_ = false; } handleNextEvents(); } void SingleThreadedEventLoop::stop() { std::unique_lock<std::mutex> lock(eventAvailableMutex_); shouldShutDown_ = true; eventAvailableCondition_.notify_one(); } void SingleThreadedEventLoop::eventPosted() { std::lock_guard<std::mutex> lock(eventAvailableMutex_); eventAvailable_ = true; eventAvailableCondition_.notify_one(); } } // namespace Swift |