aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Kaufmann <phil.kaufmann@t-online.de>2013-04-23 11:36:54 +0200
committerPhilip Kaufmann <phil.kaufmann@t-online.de>2013-06-10 19:49:54 +0200
commit53e71135de2933ef1204bb02487d4c45a95d2e28 (patch)
treeacfd11fae2bb093a83e6d8b6622a90086870d3b5
parenta2a2874fc03102c2e847cd165db1ff1f5d84fa89 (diff)
changes to thread code (directly use boost::thread)
- removes our NewThread() function an replaces remaining calls with boost::thread with our TraceThread template - remove ExitThread() function - fix THREAD_PRIORITY_ABOVE_NORMAL for non Windows OSes
-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);