diff --git a/src/signal_handler.h b/src/signal_handler.h index 00cd6976..1ed060a5 100644 --- a/src/signal_handler.h +++ b/src/signal_handler.h @@ -44,7 +44,7 @@ class SignalHandler { public: typedef sigc::slot0 Slot; - static const unsigned int HIGHEST_SIGNAL = 32; + static const unsigned int HIGHEST_SIGNAL = SIGUSR2; static void set_default(unsigned int signum); static void set_ignore(unsigned int signum); diff --git a/src/thread_base.cc b/src/thread_base.cc index 4b11d8b2..35c2e377 100644 --- a/src/thread_base.cc +++ b/src/thread_base.cc @@ -112,6 +112,7 @@ ThreadBase::ThreadBase() : // Init the poll manager in a special init function called by the // thread itself. Need to be careful with what external stuff // create_poll_manager calls in that case. + std::memset(&m_thread, 0, sizeof(pthread_t)); m_taskShutdown.set_slot(rak::ptr_fn(&throw_shutdown_exception)); diff --git a/src/thread_main.cc b/src/thread_main.cc index 97ed84d5..165f3e22 100644 --- a/src/thread_main.cc +++ b/src/thread_main.cc @@ -53,4 +53,5 @@ ThreadMain::init_thread() { m_pollManager->get_torrent_poll()->set_flags(torrent::Poll::flag_waive_global_lock); m_state = STATE_INITIALIZED; + m_thread = pthread_self(); }