Add support for named threads (atm linux only)
parent
d22621efc1
commit
edcad09dee
|
@ -169,6 +169,8 @@ void * MeshUpdateThread::Thread()
|
||||||
|
|
||||||
BEGIN_DEBUG_EXCEPTION_HANDLER
|
BEGIN_DEBUG_EXCEPTION_HANDLER
|
||||||
|
|
||||||
|
porting::setThreadName("MeshUpdateThread");
|
||||||
|
|
||||||
while(!StopRequested())
|
while(!StopRequested())
|
||||||
{
|
{
|
||||||
QueuedMeshUpdate *q = m_queue_in.pop();
|
QueuedMeshUpdate *q = m_queue_in.pop();
|
||||||
|
@ -1212,7 +1214,7 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
|
||||||
m_time_of_day_set = true;
|
m_time_of_day_set = true;
|
||||||
|
|
||||||
u32 dr = m_env.getDayNightRatio();
|
u32 dr = m_env.getDayNightRatio();
|
||||||
verbosestream<<"Client: time_of_day="<<time_of_day
|
infostream<<"Client: time_of_day="<<time_of_day
|
||||||
<<" time_speed="<<time_speed
|
<<" time_speed="<<time_speed
|
||||||
<<" dr="<<dr<<std::endl;
|
<<" dr="<<dr<<std::endl;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1227,6 +1227,8 @@ void * ConnectionSendThread::Thread()
|
||||||
PROFILE(std::stringstream ThreadIdentifier);
|
PROFILE(std::stringstream ThreadIdentifier);
|
||||||
PROFILE(ThreadIdentifier << "ConnectionSend: [" << m_connection->getDesc() << "]");
|
PROFILE(ThreadIdentifier << "ConnectionSend: [" << m_connection->getDesc() << "]");
|
||||||
|
|
||||||
|
porting::setThreadName("ConnectionSend");
|
||||||
|
|
||||||
/* if stop is requested don't stop immediately but try to send all */
|
/* if stop is requested don't stop immediately but try to send all */
|
||||||
/* packets first */
|
/* packets first */
|
||||||
while(!StopRequested() || packetsQueued()) {
|
while(!StopRequested() || packetsQueued()) {
|
||||||
|
@ -1955,6 +1957,8 @@ void * ConnectionReceiveThread::Thread()
|
||||||
PROFILE(std::stringstream ThreadIdentifier);
|
PROFILE(std::stringstream ThreadIdentifier);
|
||||||
PROFILE(ThreadIdentifier << "ConnectionReceive: [" << m_connection->getDesc() << "]");
|
PROFILE(ThreadIdentifier << "ConnectionReceive: [" << m_connection->getDesc() << "]");
|
||||||
|
|
||||||
|
porting::setThreadName("ConnectionReceive");
|
||||||
|
|
||||||
#ifdef DEBUG_CONNECTION_KBPS
|
#ifdef DEBUG_CONNECTION_KBPS
|
||||||
u32 curtime = porting::getTimeMs();
|
u32 curtime = porting::getTimeMs();
|
||||||
u32 lasttime = curtime;
|
u32 lasttime = curtime;
|
||||||
|
|
|
@ -472,6 +472,8 @@ void *EmergeThread::Thread() {
|
||||||
mapgen = emerge->mapgen[id];
|
mapgen = emerge->mapgen[id];
|
||||||
enable_mapgen_debug_info = emerge->mapgen_debug_info;
|
enable_mapgen_debug_info = emerge->mapgen_debug_info;
|
||||||
|
|
||||||
|
porting::setThreadName("EmergeThread");
|
||||||
|
|
||||||
while (!StopRequested())
|
while (!StopRequested())
|
||||||
try {
|
try {
|
||||||
if (!popBlockEmerge(&p, &flags)) {
|
if (!popBlockEmerge(&p, &flags)) {
|
||||||
|
|
|
@ -566,6 +566,8 @@ protected:
|
||||||
log_register_thread("CurlFetchThread");
|
log_register_thread("CurlFetchThread");
|
||||||
DSTACK(__FUNCTION_NAME);
|
DSTACK(__FUNCTION_NAME);
|
||||||
|
|
||||||
|
porting::setThreadName("CurlFetchThread");
|
||||||
|
|
||||||
CurlHandlePool pool;
|
CurlHandlePool pool;
|
||||||
|
|
||||||
m_multi = curl_multi_init();
|
m_multi = curl_multi_init();
|
||||||
|
|
|
@ -266,6 +266,26 @@ inline u32 getTime(TimePrecision prec)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if (defined(linux) || defined(__linux))
|
||||||
|
|
||||||
|
#include <sys/prctl.h>
|
||||||
|
|
||||||
|
inline void setThreadName(const char* name) {
|
||||||
|
prctl(PR_SET_NAME,name);
|
||||||
|
}
|
||||||
|
#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
|
||||||
|
/* BSD doesn't seem to support thread names. If you know about a way
|
||||||
|
* to add this feature please create a pull request.
|
||||||
|
* "setproctitle" doesn't work for threadnames.
|
||||||
|
*/
|
||||||
|
#define setThreadName(a)
|
||||||
|
#elif defined(_WIN32)
|
||||||
|
// threadnames are not supported on windows
|
||||||
|
#define setThreadName(a)
|
||||||
|
#else
|
||||||
|
#warning "Unknown platform for setThreadName support, you wont have threadname support."
|
||||||
|
#define setThreadName(a)
|
||||||
|
#endif
|
||||||
|
|
||||||
} // namespace porting
|
} // namespace porting
|
||||||
|
|
||||||
|
|
|
@ -262,6 +262,9 @@ void* AsyncWorkerThread::worker_thread_main() {
|
||||||
snprintf(number,sizeof(number),"%d",m_threadnum);
|
snprintf(number,sizeof(number),"%d",m_threadnum);
|
||||||
log_register_thread(std::string("AsyncWorkerThread_") + number);
|
log_register_thread(std::string("AsyncWorkerThread_") + number);
|
||||||
|
|
||||||
|
porting::setThreadName(
|
||||||
|
std::string(std::string("AsyncWorkTh_") + number).c_str());
|
||||||
|
|
||||||
/** prepare job lua environment **/
|
/** prepare job lua environment **/
|
||||||
lua_newtable(m_LuaStack);
|
lua_newtable(m_LuaStack);
|
||||||
lua_setglobal(m_LuaStack, "engine");
|
lua_setglobal(m_LuaStack, "engine");
|
||||||
|
|
|
@ -99,6 +99,8 @@ void * ServerThread::Thread()
|
||||||
|
|
||||||
ThreadStarted();
|
ThreadStarted();
|
||||||
|
|
||||||
|
porting::setThreadName("ServerThread");
|
||||||
|
|
||||||
while(!StopRequested())
|
while(!StopRequested())
|
||||||
{
|
{
|
||||||
try{
|
try{
|
||||||
|
|
Loading…
Reference in New Issue