src: p2p: add exception spec to throwing destructors

The destructors get a noexcept(true) spec by default, but these
destructors in fact throw exceptions. An alternative fix might be to not
throw (most if not all of these throws are non-essential
error-reporting/logging).
This commit is contained in:
redfish 2016-05-18 00:57:17 -04:00
parent 21dbc95b47
commit 68987416ad
4 changed files with 4 additions and 4 deletions

View File

@ -167,7 +167,7 @@ connection_basic::connection_basic(boost::asio::io_service& io_service, std::ato
//boost::filesystem::create_directories("log/dr-monero/net/"); //boost::filesystem::create_directories("log/dr-monero/net/");
} }
connection_basic::~connection_basic() { connection_basic::~connection_basic() noexcept(false) {
string remote_addr_str = "?"; string remote_addr_str = "?";
m_ref_sock_count--; m_ref_sock_count--;
try { remote_addr_str = socket_.remote_endpoint().address().to_string(); } catch(...){} ; try { remote_addr_str = socket_.remote_endpoint().address().to_string(); } catch(...){} ;

View File

@ -103,7 +103,7 @@ class connection_basic { // not-templated base class for rapid developmet of som
// first counter is the ++/-- count of current sockets, the other socket_number is only-increasing ++ number generator // first counter is the ++/-- count of current sockets, the other socket_number is only-increasing ++ number generator
connection_basic(boost::asio::io_service& io_service, std::atomic<long> &ref_sock_count, std::atomic<long> &sock_number); connection_basic(boost::asio::io_service& io_service, std::atomic<long> &ref_sock_count, std::atomic<long> &sock_number);
virtual ~connection_basic(); virtual ~connection_basic() noexcept(false);
// various handlers to be called from connection class: // various handlers to be called from connection class:
void do_send_handler_write(const void * ptr , size_t cb); void do_send_handler_write(const void * ptr , size_t cb);

View File

@ -103,7 +103,7 @@ namespace net_utils
_info_c("dbg/data","Data logger constructed"); _info_c("dbg/data","Data logger constructed");
} }
data_logger::~data_logger() { data_logger::~data_logger() noexcept(false) {
_note_c("dbg/data","Destructor of the data logger"); _note_c("dbg/data","Destructor of the data logger");
{ {
boost::lock_guard<boost::mutex> lock(mMutex); boost::lock_guard<boost::mutex> lock(mMutex);

View File

@ -55,7 +55,7 @@ enum class data_logger_state { state_before_init, state_during_init, state_ready
public: public:
static data_logger &get_instance(); ///< singleton static data_logger &get_instance(); ///< singleton
static void kill_instance(); ///< call this before ending main to allow more gracefull shutdown of the main singleton and it's background thread static void kill_instance(); ///< call this before ending main to allow more gracefull shutdown of the main singleton and it's background thread
~data_logger(); ///< destr, will be called when singleton is killed when global m_obj dies. will kill theads etc ~data_logger() noexcept(false); ///< destr, will be called when singleton is killed when global m_obj dies. will kill theads etc
private: private:
data_logger(); ///< constructor is private, use only via singleton get_instance data_logger(); ///< constructor is private, use only via singleton get_instance