thread_win32.c: set thread name

* thread_win32.c (native_set_another_thread_name): set thread name
  by SetThreadDescription.

* win32/win32.c (rb_w32_set_thread_description): dynamically try
  SetThreadDescription.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59660 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2017-08-26 00:30:03 +00:00
parent c150c7877d
commit 19d692920d
4 changed files with 59 additions and 9 deletions

View file

@ -669,6 +669,10 @@ ubf_handle(void *ptr)
}
}
int rb_w32_set_thread_description(HANDLE th, const WCHAR *name);
int rb_w32_set_thread_description_str(HANDLE th, VALUE name);
#define native_set_another_thread_name rb_w32_set_thread_description_str
static struct {
HANDLE id;
HANDLE lock;
@ -679,6 +683,7 @@ static unsigned long __stdcall
timer_thread_func(void *dummy)
{
thread_debug("timer_thread\n");
rb_w32_set_thread_description(GetCurrentThread(), L"ruby-timer-thread");
while (WaitForSingleObject(timer_thread.lock, TIME_QUANTUM_USEC/1000) ==
WAIT_TIMEOUT) {
timer_thread_function(dummy);