[vlc-devel] [PATCH v3 1/4] thread: add a function to give names to threads
Steve Lhomme
robux4 at ycbcr.xyz
Thu Nov 12 12:07:07 CET 2020
On 2020-11-12 11:55, Alexandre Janniaux wrote:
> Hi,
>
> On Thu, Nov 12, 2020 at 11:17:51AM +0100, Steve Lhomme wrote:
>> On 2020-11-12 9:45, Rémi Denis-Courmont wrote:
>>> Le torstaina 12. marraskuuta 2020, 8.23.33 EET Steve Lhomme a écrit :
>>>>> This is not Android-specific and should be in linux/thread.c.
>>>>
>>>> It is.
>>>
>>> No it is not. That nonportable POSIX thread extension function also exists on
>>> desktop Linux and even some other OSes.
>>
>> But that's not what we use for Linux, nor other platforms. And I prefer to
>> use the variants already used in dav1d that are known to work that just
>> trying to guess which system has what hack.
>
> Documentation of prctl mention:
>
> PR_SET_NAME (since Linux 2.6.9)
> Set the name of the calling thread, using the value in the location pointed to by (char *) arg2. The name can be up to 16 bytes long, including the terminating null byte.
> (If the length of the string, including the terminating null byte, exceeds 16 bytes, the string is silently truncated.) This is the same attribute that can be set via
> pthread_setname_np(3) and retrieved using pthread_getname_np(3). The attribute is likewise accessible via /proc/self/task/[tid]/comm (see proc(5)), where [tid] is the
> thread ID of the calling thread, as returned by gettid(2).
>
> So using pthread_setname_np for every posix systems looks
> like less code and different function to worry about.
Do you consider Android like a posix system ? Because it needs the
manually truncation where Linux doesn't.
Is macOS a posix system ? The pthread_setname_np() signature doesn't
even match the Linux one.
Is NetBSD a posix system ? The pthread_setname_np() signature doesn't
match the Linux and macOS ones.
Summary: neither Linux, Android, macOS and NetBSD can use the same code
and you are proposing to merge them.
More information about the vlc-devel
mailing list