bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: single-threaded optimizations


From: Paul Eggert
Subject: Re: single-threaded optimizations
Date: Sat, 6 Mar 2021 08:56:40 -0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1

On 3/2/21 7:27 PM, Bruno Haible wrote:

a general macro won't cut it e.g. for coreutils. coreutils
has multithreaded programs ('sort') next to single-threaded programs.
But coreutils wants to optimize wcwidth. GNULIB_WCHAR_SINGLE actually
means "assume that the locale has been set before the program becomes
multithreaded, and won't change afterwards". Similarly,
'#include "unlocked-io.h"' does not mean that the program is single-
threaded; it means that no FILE object is being accessed in more than
one thread.

Good point. How about this idea?

* We establish a new macro GNULIB_MBTOWC_SINGLE which means "assume that at most one thread invokes mbtowc-like functions". The mbtowc replacement uses this instead of using USE_UNLOCKED_IO. Tar can #define this new macro.

* If macros like GNLIB_MBTOWC_SINGLE proliferate, we can have a single macro GNULIB_SINGLE_THREADED that implies all the other macros. For now I'm not sure it's worth the bother to do this.

* If someone has the time, fix the underlying problem that the Gnulib mbrtowc replacement doesn't link under AIX in some circumstances, unless you #define GNULIB_MBTOWC_SINGLE. I'm not sure exactly what these circumstances are, and anyway if I were to delve into that, I think I might want to investigate the possibility of having the mbrtowc replacement use AIX mbrtowc instead of a lock around AIX mbtowc, as that should perform better anyway. But I'm not sure AIX is worth the time for this sort of thing.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]