aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Garzik <jgarzik@bitpay.com>2013-06-10 13:42:59 -0700
committerJeff Garzik <jgarzik@bitpay.com>2013-06-10 13:42:59 -0700
commitd1020b780a1493c6a709f70756b2af54a7126f40 (patch)
tree6427b7d81d191194f0c2bc09e93b9dc23627f0a0
parent61983b3d1626359705b300ac82d9cfb6b77eb746 (diff)
parent53e71135de2933ef1204bb02487d4c45a95d2e28 (diff)
Merge pull request #2553 from Diapolo/threads
changes to thread code (directly use boost::thread)
-rw-r--r--src/net.cpp11
-rw-r--r--src/util.cpp12
-rw-r--r--src/util.h9
3 files changed, 5 insertions, 27 deletions
diff --git a/src/net.cpp b/src/net.cpp
index adc5f93029..1f8b39ac98 100644
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -389,11 +389,8 @@ bool GetMyExternalIP(CNetAddr& ipRet)
return false;
}
-void ThreadGetMyExternalIP(void* parg)
+void ThreadGetMyExternalIP()
{
- // Make this thread recognisable as the external IP detection thread
- RenameThread("bitcoin-ext-ip");
-
CNetAddr addrLocalHost;
if (GetMyExternalIP(addrLocalHost))
{
@@ -1151,7 +1148,7 @@ void MapPort(bool fUseUPnP)
upnp_thread->join();
delete upnp_thread;
}
- upnp_thread = new boost::thread(boost::bind(&TraceThread<boost::function<void()> >, "upnp", &ThreadMapPort));
+ upnp_thread = new boost::thread(boost::bind(&TraceThread<void (*)()>, "upnp", &ThreadMapPort));
}
else if (upnp_thread) {
upnp_thread->interrupt();
@@ -1800,7 +1797,7 @@ void static Discover()
// Don't use external IPv4 discovery, when -onlynet="IPv6"
if (!IsLimited(NET_IPV4))
- NewThread(ThreadGetMyExternalIP, NULL);
+ boost::thread(boost::bind(&TraceThread<void (*)()>, "ext-ip", &ThreadGetMyExternalIP));
}
void StartNode(boost::thread_group& threadGroup)
@@ -1823,7 +1820,7 @@ void StartNode(boost::thread_group& threadGroup)
if (!GetBoolArg("-dnsseed", true))
printf("DNS seeding disabled\n");
else
- threadGroup.create_thread(boost::bind(&TraceThread<boost::function<void()> >, "dnsseed", &ThreadDNSAddressSeed));
+ threadGroup.create_thread(boost::bind(&TraceThread<void (*)()>, "dnsseed", &ThreadDNSAddressSeed));
#ifdef USE_UPNP
// Map ports with UPnP
diff --git a/src/util.cpp b/src/util.cpp
index 2f1f522a61..f4892a2387 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -1468,15 +1468,3 @@ void RenameThread(const char* name)
(void)name;
#endif
}
-
-bool NewThread(void(*pfn)(void*), void* parg)
-{
- try
- {
- boost::thread(pfn, parg); // thread detaches when out of scope
- } catch(boost::thread_resource_error &e) {
- printf("Error creating thread: %s\n", e.what());
- return false;
- }
- return true;
-}
diff --git a/src/util.h b/src/util.h
index 941e0d99ac..2272ed02f4 100644
--- a/src/util.h
+++ b/src/util.h
@@ -488,8 +488,6 @@ public:
}
};
-bool NewThread(void(*pfn)(void*), void* parg);
-
#ifdef WIN32
inline void SetThreadPriority(int nPriority)
{
@@ -500,7 +498,7 @@ inline void SetThreadPriority(int nPriority)
#define THREAD_PRIORITY_LOWEST PRIO_MAX
#define THREAD_PRIORITY_BELOW_NORMAL 2
#define THREAD_PRIORITY_NORMAL 0
-#define THREAD_PRIORITY_ABOVE_NORMAL 0
+#define THREAD_PRIORITY_ABOVE_NORMAL (-2)
inline void SetThreadPriority(int nPriority)
{
@@ -512,11 +510,6 @@ inline void SetThreadPriority(int nPriority)
setpriority(PRIO_PROCESS, 0, nPriority);
#endif
}
-
-inline void ExitThread(size_t nExitCode)
-{
- pthread_exit((void*)nExitCode);
-}
#endif
void RenameThread(const char* name);