Subject: bug#38632: 27.0.50; Emacs process name is changed permanently upon creating a named thread

From: Robert Pluim <[email-masked]>
Date: Wed, 18 Dec 2019 22:30:14 +0100

>>>>> On Wed, 18 Dec 2019 19:18:57 +0200, Eli Zaretskii <[email-masked]> said:

    >> From: Robert Pluim <[email-masked]>
    >> Cc: [email-masked],  [email-masked]
    >> Date: Wed, 18 Dec 2019 18:04:53 +0100
    >> 
    Eli> (Btw, the limitation is 16 bytes, including the terminating null, so
    Eli> truncation needs to be clever about non-ASCII characters, and I wonder
    Eli> what does prctl do when 15 bytes end in the middle of a multibyte
    Eli> sequence.)
    >> 
    >> It does exactly what you'd expect, it drops the extraneous bytes, so
    >> putting eg ü on the boundary results in a name ending in Ã (#xc3).

    Eli> So it is one more reason to do or own truncation, so we do it right.

OK. Is there a useful function that would help for that? I can cook up
something based on NEXT_CHAR_BOUNDARY and/or BYTES_BY_CHAR_HEAD, but Iʼd
expect there to be something already.

    >> In any case, if emacs or prctl truncates, then the name as reported
    >> by 'list-threads' will be out of sync with pthread_getname_np, unless
    >> you'd want to adjust that too.

    Eli> We need to truncate the names we store in the thread object (and
    Eli> document that).

Thatʼs the easy part. Iʼm assuming mswindows doesnʼt truncate.

Robert