#include <core/monitor/monitor.h>
+#include <condition_variable>
#include <functional>
-#include <vector>
+#include <mutex>
+#include <thread>
#include <unordered_map>
+#include <vector>
#include <boost/asio.hpp>
-#include <boost/bind.hpp>
-#include <boost/thread.hpp>
#include <tbb/spin_mutex.h>
std::map<udp::endpoint, int> reference_counts_by_endpoint_;
std::unordered_map<std::string, byte_vector> updates_;
- boost::mutex updates_mutex_;
- boost::condition_variable updates_cond_;
+ std::mutex updates_mutex_;
+ std::condition_variable updates_cond_;
tbb::atomic<bool> is_running_;
- boost::thread thread_;
+ std::thread thread_;
public:
impl(std::shared_ptr<boost::asio::io_service> service)
: service_(std::move(service))
, socket_(*service_, udp::v4())
- , thread_(boost::bind(&impl::run, this))
+ , thread_(std::bind(&impl::run, this))
{
}
private:
void propagate(const core::monitor::message& msg)
{
- boost::lock_guard<boost::mutex> lock(updates_mutex_);
+ std::lock_guard<std::mutex> lock(updates_mutex_);
try
{
destinations.clear();
{
- boost::unique_lock<boost::mutex> cond_lock(updates_mutex_);
+ std::unique_lock<std::mutex> cond_lock(updates_mutex_);
if (!is_running_)
return;