Browse Source

Use unique_ptr for upnp_thread (boost::thread)

0.16
practicalswift 7 years ago
parent
commit
73db0635a3
  1. 8
      src/net.cpp

8
src/net.cpp

@ -1534,22 +1534,20 @@ void ThreadMapPort()
void MapPort(bool fUseUPnP) void MapPort(bool fUseUPnP)
{ {
static boost::thread* upnp_thread = nullptr; static std::unique_ptr<boost::thread> upnp_thread;
if (fUseUPnP) if (fUseUPnP)
{ {
if (upnp_thread) { if (upnp_thread) {
upnp_thread->interrupt(); upnp_thread->interrupt();
upnp_thread->join(); upnp_thread->join();
delete upnp_thread;
} }
upnp_thread = new boost::thread(boost::bind(&TraceThread<void (*)()>, "upnp", &ThreadMapPort)); upnp_thread.reset(new boost::thread(boost::bind(&TraceThread<void (*)()>, "upnp", &ThreadMapPort)));
} }
else if (upnp_thread) { else if (upnp_thread) {
upnp_thread->interrupt(); upnp_thread->interrupt();
upnp_thread->join(); upnp_thread->join();
delete upnp_thread; upnp_thread.reset();
upnp_thread = nullptr;
} }
} }

Loading…
Cancel
Save