设置线程名字

vs2010   https://msdn.microsoft.com/en-us/library/xcb2z8hs(v=vs.100).aspx

 1 const DWORD MS_VC_EXCEPTION=0x406D1388;
 2 
 3 #pragma pack(push,8)
 4 typedef struct tagTHREADNAME_INFO
 5 {
 6     DWORD dwType; // Must be 0x1000.
 7     LPCSTR szName; // Pointer to name (in user addr space).
 8     DWORD dwThreadID; // Thread ID (-1=caller thread).
 9     DWORD dwFlags; // Reserved for future use, must be zero.
10 } THREADNAME_INFO;
11 #pragma pack(pop)
12 
13 void SetCurrentThreadName(const char* threadName)
14 {
15     THREADNAME_INFO info;
16     info.dwType = 0x1000;
17     info.szName = threadName;
18     info.dwThreadID = -1;
19     info.dwFlags = 0;
20 
21     __try
22     {
23         RaiseException( MS_VC_EXCEPTION, 0, sizeof(info)/sizeof(ULONG_PTR), (ULONG_PTR*)&info );
24     }
25     __except(EXCEPTION_EXECUTE_HANDLER)
26     {
27     }
28 }

 

 

linux  https://github.com/apache/trafficserver/blob/f9a6930fca6ea458615fa7fef6b7e67c472701ed/lib/ts/ink_thread.h

 1 // This define is from Linux's <sys/prctl.h> and is most likely very
 2 // Linux specific... Feel free to add support for other platforms
 3 // that has a feature to give a thread specific name / tag.
 4 static inline void
 5 ink_set_thread_name(const char *name ATS_UNUSED)
 6 {
 7 #if defined(HAVE_PTHREAD_SETNAME_NP_1)
 8   pthread_setname_np(name);
 9 #elif defined(HAVE_PTHREAD_SETNAME_NP_2)
10   pthread_setname_np(pthread_self(), name);
11 #elif defined(HAVE_PTHREAD_SET_NAME_NP_2)
12   pthread_set_name_np(pthread_self(), name);
13 #elif defined(HAVE_SYS_PRCTL_H) && defined(PR_SET_NAME)
14   prctl(PR_SET_NAME, name, 0, 0, 0);
15 #endif
16 }

 

转载于:https://www.cnblogs.com/youngt/p/5311650.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值