NetBSD-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: 3rd argument of pthread_setname_np [Was: SYS_gettid alternative on NetBSD]
On Fri, Jul 22, 2022 at 05:23:32PM +0530, Mayuresh wrote:
> On Fri, Jul 22, 2022 at 12:07:36PM +0530, Mayuresh wrote:
> > /usr/pkgsrc/work/wip/py-torch/work/pytorch/third_party/kineto/libkineto/src/ThreadUtil.cpp: In function 'bool libkineto::setThreadName(const string&)':
> > /usr/pkgsrc/work/wip/py-torch/work/pytorch/third_party/kineto/libkineto/src/ThreadUtil.cpp:105:62: error: too few arguments to function 'int pthread_setname_np(pthread_t, const char*, void*)'
> >
> > bool setThreadName(const std::string& name) {
> > #ifdef __APPLE__
> > return 0 == pthread_setname_np(name.c_str());
> > #elif defined _MSC_VER
> > // Per https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setthreaddescription
> > // Use runtime linking to set thread description
> > static auto _SetThreadDescription = reinterpret_cast<decltype(&SetThreadDescription)>(getKernel32Func("SetThreadDescription"));
> > if (!_SetThreadDescription) {
> > return false;
> > }
> > std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> conv;
> > std::wstring wname = conv.from_bytes(name);
> > HRESULT hr = _SetThreadDescription(GetCurrentThread(), wname.c_str());
> > return SUCCEEDED(hr);
> > #else
> > return 0 == pthread_setname_np(pthread_self(), name.c_str());
> > #endif
> > }
>
> On NetBSD pthread_setname_np takes 3rd argument, which is described as:
>
> arg The printf(3) argument used with name.
>
> Does it mean pass something like "%s" for above code which does not have
> the 3rd argument on Linux?
The other way around. On NetBSD, it can be called like:
pthread_setname_np(pthread_self(), "thread_%d", 42);
But when changing a Linux call like:
pthread_setname_np(pthread_self(), name.c_str());
I usually just add a NULL for the third arg for NetBSD:
pthread_setname_np(pthread_self(), name.c_str(), NULL);
--
Paul Ripke
"Great minds discuss ideas, average minds discuss events, small minds
discuss people."
-- Disputed: Often attributed to Eleanor Roosevelt. 1948.
Home |
Main Index |
Thread Index |
Old Index