From bd5d5760769de170464ea19198f9e83e7051d622 Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Wed, 12 Nov 2014 14:07:08 -0800 Subject: [PATCH] start hook_packets on separate boost thread. --- src/bitcoindjs.cc | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/bitcoindjs.cc b/src/bitcoindjs.cc index 101a67f9..200ccc86 100644 --- a/src/bitcoindjs.cc +++ b/src/bitcoindjs.cc @@ -392,10 +392,10 @@ static inline void jstx_to_ctx(const Local jstx, CTransaction& ctx); static void -hook_packets(CNodeSignals& nodeSignals); +hook_packets(void); static void -unhook_packets(CNodeSignals& nodeSignals); +unhook_packets(void); static bool process_packets(CNode* pfrom); @@ -738,7 +738,7 @@ start_node(void) { signal(SIGQUIT, SIG_DFL); // Hook into packet handling - hook_packets(GetNodeSignals()); + (boost::thread *)new boost::thread(boost::bind(&hook_packets)); return 0; } @@ -886,7 +886,7 @@ NAN_METHOD(StopBitcoind) { static void async_stop_node(uv_work_t *req) { async_node_data *data = static_cast(req->data); - unhook_packets(GetNodeSignals()); + unhook_packets(); StartShutdown(); data->result = std::string("stop_node(): bitcoind shutdown."); } @@ -2748,12 +2748,14 @@ NAN_METHOD(HookPackets) { } static void -hook_packets(CNodeSignals& nodeSignals) { +hook_packets(void) { + CNodeSignals& nodeSignals = GetNodeSignals(); nodeSignals.ProcessMessages.connect(&process_packets); } static void -unhook_packets(CNodeSignals& nodeSignals) { +unhook_packets(void) { + CNodeSignals& nodeSignals = GetNodeSignals(); nodeSignals.ProcessMessages.disconnect(&process_packets); }