mirror of
https://github.com/RGBCube/serenity
synced 2025-07-24 21:57:35 +00:00
LibPthread: Fix incompatible pthread_setname_np(), pthread_getname_np()
Other implementations of pthread_setname_np() do not take the name length as an argument. For pthread_getname_np(), other implementations take the buffer size as a size_t. This patch brings us in line with other implementations.
This commit is contained in:
parent
24c736b0e7
commit
eede6cfd06
3 changed files with 8 additions and 14 deletions
|
@ -537,21 +537,15 @@ int pthread_setspecific(pthread_key_t key, const void* value)
|
||||||
t_specifics.values[key] = const_cast<void*>(value);
|
t_specifics.values[key] = const_cast<void*>(value);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int pthread_setname_np(pthread_t thread, const char* buffer, int buffer_size)
|
int pthread_setname_np(pthread_t thread, const char* name)
|
||||||
{
|
{
|
||||||
if (buffer_size < 0) {
|
if (!name)
|
||||||
errno = EINVAL;
|
return EFAULT;
|
||||||
return -1;
|
return syscall(SC_set_thread_name, thread, name, strlen(name));
|
||||||
}
|
|
||||||
return syscall(SC_set_thread_name, thread, buffer, buffer_size);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int pthread_getname_np(pthread_t thread, char* buffer, int buffer_size)
|
int pthread_getname_np(pthread_t thread, char* buffer, size_t buffer_size)
|
||||||
{
|
{
|
||||||
if (buffer_size < 0) {
|
|
||||||
errno = EINVAL;
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
return syscall(SC_get_thread_name, thread, buffer, buffer_size);
|
return syscall(SC_get_thread_name, thread, buffer, buffer_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -82,7 +82,7 @@ int pthread_mutexattr_init(pthread_mutexattr_t*);
|
||||||
int pthread_mutexattr_settype(pthread_mutexattr_t*, int);
|
int pthread_mutexattr_settype(pthread_mutexattr_t*, int);
|
||||||
int pthread_mutexattr_destroy(pthread_mutexattr_t*);
|
int pthread_mutexattr_destroy(pthread_mutexattr_t*);
|
||||||
|
|
||||||
int pthread_setname_np(pthread_t, const char*, int);
|
int pthread_setname_np(pthread_t, const char*);
|
||||||
int pthread_getname_np(pthread_t, char*, int);
|
int pthread_getname_np(pthread_t, char*, size_t);
|
||||||
|
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
|
|
|
@ -33,7 +33,7 @@ void LibThread::Thread::start()
|
||||||
|
|
||||||
ASSERT(rc == 0);
|
ASSERT(rc == 0);
|
||||||
if (!m_thread_name.is_empty()) {
|
if (!m_thread_name.is_empty()) {
|
||||||
rc = pthread_setname_np(m_tid, m_thread_name.characters(), m_thread_name.length());
|
rc = pthread_setname_np(m_tid, m_thread_name.characters());
|
||||||
ASSERT(rc == 0);
|
ASSERT(rc == 0);
|
||||||
}
|
}
|
||||||
dbg() << "Started a thread, tid = " << m_tid;
|
dbg() << "Started a thread, tid = " << m_tid;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue