diff options
author | Tobias Markmann <tm@ayena.de> | 2016-04-08 08:40:49 (GMT) |
---|---|---|
committer | Tobias Markmann <tm@ayena.de> | 2016-04-12 14:12:45 (GMT) |
commit | b9ad76af13fc1d253845e027f91f22039bf14f9c (patch) | |
tree | c70d592a6bbbaae96e818e1de92e82e53390f393 /Swiften/Network/PlatformDomainNameResolver.cpp | |
parent | 4e6713df2d55dc1b2970d9c3b619d2a415e1264f (diff) | |
download | swift-b9ad76af13fc1d253845e027f91f22039bf14f9c.zip swift-b9ad76af13fc1d253845e027f91f22039bf14f9c.tar.bz2 |
Use C++11 threading library instead of Boost.Thread
This cuts down our dependency on Boost further. Another
benefit is that mutex classes of C++11 standard library are
recognized by TSAN.
Test-Information:
Unit and integration tests pass on OS X 10.11.4.
Change-Id: Id4dcdb42e3d5155e107ce1d7618acbf26f913b6f
Diffstat (limited to 'Swiften/Network/PlatformDomainNameResolver.cpp')
-rw-r--r-- | Swiften/Network/PlatformDomainNameResolver.cpp | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/Swiften/Network/PlatformDomainNameResolver.cpp b/Swiften/Network/PlatformDomainNameResolver.cpp index ecb5247..40e385d 100644 --- a/Swiften/Network/PlatformDomainNameResolver.cpp +++ b/Swiften/Network/PlatformDomainNameResolver.cpp @@ -6,29 +6,28 @@ #include <Swiften/Network/PlatformDomainNameResolver.h> -// Putting this early on, because some system types conflict with thread -#include <Swiften/Network/PlatformDomainNameServiceQuery.h> - +#include <algorithm> +#include <mutex> #include <string> +#include <thread> #include <vector> + #include <boost/bind.hpp> -#include <boost/thread.hpp> -#include <algorithm> -#include <string> +#include <Swiften/EventLoop/EventLoop.h> #include <Swiften/IDN/IDNConverter.h> +#include <Swiften/Network/DomainNameAddressQuery.h> #include <Swiften/Network/HostAddress.h> -#include <Swiften/EventLoop/EventLoop.h> #include <Swiften/Network/HostAddressPort.h> -#include <Swiften/Network/DomainNameAddressQuery.h> #include <Swiften/Network/PlatformDomainNameAddressQuery.h> +#include <Swiften/Network/PlatformDomainNameServiceQuery.h> using namespace Swift; namespace Swift { PlatformDomainNameResolver::PlatformDomainNameResolver(IDNConverter* idnConverter, EventLoop* eventLoop) : idnConverter(idnConverter), eventLoop(eventLoop), stopRequested(false) { - thread = new boost::thread(boost::bind(&PlatformDomainNameResolver::run, this)); + thread = new std::thread(boost::bind(&PlatformDomainNameResolver::run, this)); } PlatformDomainNameResolver::~PlatformDomainNameResolver() { @@ -55,7 +54,7 @@ void PlatformDomainNameResolver::run() { while (!stopRequested) { PlatformDomainNameQuery::ref query; { - boost::unique_lock<boost::mutex> lock(queueMutex); + std::unique_lock<std::mutex> lock(queueMutex); while (queue.empty()) { queueNonEmpty.wait(lock); } @@ -72,7 +71,7 @@ void PlatformDomainNameResolver::run() { void PlatformDomainNameResolver::addQueryToQueue(PlatformDomainNameQuery::ref query) { { - boost::lock_guard<boost::mutex> lock(queueMutex); + std::lock_guard<std::mutex> lock(queueMutex); queue.push_back(query); } queueNonEmpty.notify_one(); |