aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRiccardo Spagni <ric@spagni.net>2016-02-20 17:10:51 +0200
committerRiccardo Spagni <ric@spagni.net>2016-02-20 17:10:51 +0200
commitc3baa82ac8e60da16ff0ad3af58c4ee495e898ab (patch)
tree398ec9d6e58debe889b76a51f743658c6c63fa67
parentMerge pull request #677 (diff)
parentFix crash in std::map for connections_map (diff)
downloadmonero-c3baa82ac8e60da16ff0ad3af58c4ee495e898ab.tar.xz
Merge pull request #678
11d555c Fix crash in std::map for connections_map (Howard Chu) 014f886 std::condvar is broken on Win32 with gcc/g++ 4.8 too (Howard Chu) 7c86c59 Use boost::thread instead of std::thread (Howard Chu)
-rw-r--r--contrib/epee/include/console_handler.h5
-rw-r--r--contrib/epee/include/net/levin_protocol_handler_async.h3
-rw-r--r--contrib/epee/include/syncobj.h10
-rw-r--r--src/common/dns_utils.cpp4
-rw-r--r--src/p2p/data_logger.cpp3
-rw-r--r--src/p2p/net_node.h2
-rw-r--r--src/p2p/net_node.inl2
7 files changed, 15 insertions, 14 deletions
diff --git a/contrib/epee/include/console_handler.h b/contrib/epee/include/console_handler.h
index 5c63556ae..d76d7930c 100644
--- a/contrib/epee/include/console_handler.h
+++ b/contrib/epee/include/console_handler.h
@@ -36,6 +36,7 @@
#ifdef __OpenBSD__
#include <stdio.h>
#endif
+#include <boost/thread.hpp>
namespace epee
{
@@ -47,7 +48,7 @@ namespace epee
, m_has_read_request(false)
, m_read_status(state_init)
{
- m_reader_thread = std::thread(std::bind(&async_stdin_reader::reader_thread_func, this));
+ m_reader_thread = boost::thread(std::bind(&async_stdin_reader::reader_thread_func, this));
}
~async_stdin_reader()
@@ -212,7 +213,7 @@ namespace epee
};
private:
- std::thread m_reader_thread;
+ boost::thread m_reader_thread;
std::atomic<bool> m_run;
std::string m_line;
diff --git a/contrib/epee/include/net/levin_protocol_handler_async.h b/contrib/epee/include/net/levin_protocol_handler_async.h
index a7fbffb4b..7331faa35 100644
--- a/contrib/epee/include/net/levin_protocol_handler_async.h
+++ b/contrib/epee/include/net/levin_protocol_handler_async.h
@@ -26,6 +26,7 @@
#pragma once
#include <boost/uuid/uuid_generators.hpp>
+#include <boost/unordered_map.hpp>
#include <boost/interprocess/detail/atomic.hpp>
#include <boost/smart_ptr/make_shared.hpp>
@@ -52,7 +53,7 @@ class async_protocol_handler;
template<class t_connection_context>
class async_protocol_handler_config
{
- typedef std::map<boost::uuids::uuid, async_protocol_handler<t_connection_context>* > connections_map;
+ typedef boost::unordered_map<boost::uuids::uuid, async_protocol_handler<t_connection_context>* > connections_map;
critical_section m_connects_lock;
connections_map m_connects;
diff --git a/contrib/epee/include/syncobj.h b/contrib/epee/include/syncobj.h
index b81eb43a9..275324436 100644
--- a/contrib/epee/include/syncobj.h
+++ b/contrib/epee/include/syncobj.h
@@ -30,8 +30,6 @@
#ifndef __WINH_OBJ_H__
#define __WINH_OBJ_H__
-#include <condition_variable>
-#include <mutex>
#include <boost/thread/locks.hpp>
#include <boost/thread/mutex.hpp>
#include <boost/thread/recursive_mutex.hpp>
@@ -51,22 +49,22 @@ namespace epee
void raise()
{
- std::unique_lock<std::mutex> lock(m_mx);
+ boost::unique_lock<boost::mutex> lock(m_mx);
m_rised = true;
m_cond_var.notify_one();
}
void wait()
{
- std::unique_lock<std::mutex> lock(m_mx);
+ boost::unique_lock<boost::mutex> lock(m_mx);
while (!m_rised)
m_cond_var.wait(lock);
m_rised = false;
}
private:
- std::mutex m_mx;
- std::condition_variable m_cond_var;
+ boost::mutex m_mx;
+ boost::condition_variable m_cond_var;
bool m_rised;
};
diff --git a/src/common/dns_utils.cpp b/src/common/dns_utils.cpp
index eb7b6608b..eb0a7de1f 100644
--- a/src/common/dns_utils.cpp
+++ b/src/common/dns_utils.cpp
@@ -38,7 +38,7 @@
using namespace epee;
namespace bf = boost::filesystem;
-static std::mutex instance_lock;
+static boost::mutex instance_lock;
namespace
{
@@ -304,7 +304,7 @@ std::string DNSResolver::get_dns_format_from_oa_address(const std::string& oa_ad
DNSResolver& DNSResolver::instance()
{
- std::lock_guard<std::mutex> lock(instance_lock);
+ boost::lock_guard<boost::mutex> lock(instance_lock);
static DNSResolver* staticInstance = NULL;
if (staticInstance == NULL)
diff --git a/src/p2p/data_logger.cpp b/src/p2p/data_logger.cpp
index f875cb8f0..7fc85e3bc 100644
--- a/src/p2p/data_logger.cpp
+++ b/src/p2p/data_logger.cpp
@@ -31,6 +31,7 @@
#include <boost/chrono.hpp>
#include <boost/filesystem.hpp>
+#include <boost/thread.hpp>
#include <chrono>
#include "../../contrib/otshell_utils/utils.hpp"
@@ -85,7 +86,7 @@ namespace net_utils
_info_c("dbg/data","Creating thread for data logger"); // create timer thread
m_thread_maybe_running=true;
- std::shared_ptr<std::thread> logger_thread(new std::thread([&]() {
+ std::shared_ptr<boost::thread> logger_thread(new boost::thread([&]() {
_info_c("dbg/data","Inside thread for data logger");
while (m_state == data_logger_state::state_during_init) { // wait for creation to be done (in other thread, in singleton) before actually running
std::this_thread::sleep_for(std::chrono::seconds(1));
diff --git a/src/p2p/net_node.h b/src/p2p/net_node.h
index 2ae849e2a..260dd813d 100644
--- a/src/p2p/net_node.h
+++ b/src/p2p/net_node.h
@@ -270,7 +270,7 @@ namespace nodetool
bool m_offline;
std::atomic<bool> m_save_graph;
std::atomic<bool> is_closing;
- std::unique_ptr<std::thread> mPeersLoggerThread;
+ std::unique_ptr<boost::thread> mPeersLoggerThread;
//critical_section m_connections_lock;
//connections_indexed_container m_connections;
diff --git a/src/p2p/net_node.inl b/src/p2p/net_node.inl
index 47a5dc6c3..56717ec66 100644
--- a/src/p2p/net_node.inl
+++ b/src/p2p/net_node.inl
@@ -567,7 +567,7 @@ namespace nodetool
bool node_server<t_payload_net_handler>::run()
{
// creating thread to log number of connections
- mPeersLoggerThread.reset(new std::thread([&]()
+ mPeersLoggerThread.reset(new boost::thread([&]()
{
_note("Thread monitor number of peers - start");
while (!is_closing && !m_net_server.is_stop_signal_sent())