mirror of
https://github.com/bkaradzic/bx.git
synced 2026-02-18 04:53:06 +01:00
Add function to set thread name
Naming a thread is useful when debugging multi-threaded applications.
This commit is contained in:
@@ -43,4 +43,16 @@
|
||||
# define BX_CONFIG_SUPPORTS_THREADING !(BX_PLATFORM_EMSCRIPTEN)
|
||||
#endif // BX_CONFIG_SUPPORTS_THREADING
|
||||
|
||||
#ifndef BX_CONFIG_THREAD_NAME_LENGTH
|
||||
# if BX_PLATFORM_WINDOWS
|
||||
# define BX_CONFIG_THREAD_NAME_LENGTH 256
|
||||
# elif BX_PLATFORM_OSX|BX_PLATFORM_IOS
|
||||
# define BX_CONFIG_THREAD_NAME_LENGTH 64
|
||||
# elif BX_PLATFORM_POSIX
|
||||
# define BX_CONFIG_THREAD_NAME_LENGTH 16
|
||||
# else
|
||||
# define BX_CONFIG_THREAD_NAME_LENGTH 0
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#endif // BX_CONFIG_H_HEADER_GUARD
|
||||
|
||||
@@ -139,6 +139,27 @@ namespace bx
|
||||
return m_exitCode;
|
||||
}
|
||||
|
||||
void setThreadName(const char* name)
|
||||
{
|
||||
if (name != NULL)
|
||||
{
|
||||
strncpy(m_name, name, BX_CONFIG_THREAD_NAME_LENGTH);
|
||||
}
|
||||
else
|
||||
{
|
||||
memset(m_name, 0, BX_CONFIG_THREAD_NAME_LENGTH);
|
||||
}
|
||||
|
||||
#if BX_PLATFORM_WINDOWS
|
||||
#elif BX_PLATFORM_OSX|BX_PLATFORM_IOS
|
||||
strncpy(m_name, name, BX_CONFIG_THREAD_NAME_LENGTH);
|
||||
pthread_setname_np(m_name);
|
||||
#elif BX_PLATFORM_POSIX
|
||||
strncpy(m_name, name, BX_CONFIG_THREAD_NAME_LENGTH);
|
||||
pthread_setname_np(m_handle, m_name);
|
||||
#endif // BX_PLATFORM_
|
||||
}
|
||||
|
||||
private:
|
||||
int32_t entry()
|
||||
{
|
||||
@@ -179,6 +200,7 @@ namespace bx
|
||||
uint32_t m_stackSize;
|
||||
int32_t m_exitCode;
|
||||
bool m_running;
|
||||
char m_name[BX_CONFIG_THREAD_NAME_LENGTH];
|
||||
};
|
||||
|
||||
#if BX_PLATFORM_WINDOWS
|
||||
|
||||
Reference in New Issue
Block a user