mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-05 17:06:18 +01:00
afd8dde13f
The alt-digits are loaded from `nl_langinfo()` in a `GOnce` section, which means `nl_langinfo()` is not re-queried after the process changes locale (if that happens). So, change the `GOnce` to a mutex and store the locale of the alt-digits alongside them. This will introduce contention when calling `format_number()` is called, but how often are multiple threads trying to format dates at the same time? If this does get highlighted as a performance problem, the other approach I considered was a `GPrivate` struct containing all the locale-specific cached data. That comes at the cost of using a `GPrivate` slot (although that’s only particularly expensive on Windows, and the locale code is quite different for Windows, so perhaps that could be avoided entirely). It does mean that all locale printing could be lock-free and still safely update cached data on a locale change. Signed-off-by: Philip Withnall <pwithnall@endlessos.org> |
||
---|---|---|
.. | ||
android-ndk.sh | ||
cache-subprojects.sh | ||
check-missing-install-tag.py | ||
check-todos.py | ||
clang-format-diff.py | ||
coverage-docker.sh | ||
coverity-model.c | ||
coverity.Dockerfile | ||
cross_file_android_arm64_31.txt | ||
cross_file_ios_example.txt | ||
cross_file_mingw64.txt | ||
debian-stable.Dockerfile | ||
fedora.Dockerfile | ||
fixup-cov-paths.py | ||
install-gitlab-cobertura-tools.sh | ||
mingw.Dockerfile | ||
README.md | ||
run-black.sh | ||
run-check-todos.sh | ||
run-docker.sh | ||
run-flake8.sh | ||
run-reuse.sh | ||
run-shellcheck.sh | ||
run-style-check-diff.sh | ||
run-tests.sh | ||
search-common-ancestor.sh | ||
show-execution-environment.sh | ||
test-msvc.bat | ||
test-msys2.sh |
CI support stuff
Docker image
GitLab CI jobs run in a Docker image, defined here. To update that image (perhaps to install some more packages):
- Edit
.gitlab-ci/*.Dockerfile
with the changes you want - Run
.gitlab-ci/run-docker.sh build --base=debian-stable --base-version=1
to build the new image (bump the version from the latest listed for thatbase
on https://gitlab.gnome.org/GNOME/glib/container_registry). If rebuilding thecoverity.Dockerfile
image, you’ll need to have access to Coverity Scan and will need to specify your project name and access token as the environment variablesCOVERITY_SCAN_PROJECT_NAME
andCOVERITY_SCAN_TOKEN
. - Run
.gitlab-ci/run-docker.sh push --base=debian-stable --base-version=1
to upload the new image to the GNOME GitLab Docker registry- If this is the first time you're doing this, you'll need to log into the registry
- If you use 2-factor authentication on your GNOME GitLab account, you'll
need to create a personal access token and use that rather than
your normal password — the token should have
read_registry
andwrite_registry
permissions
- Edit
.gitlab-ci.yml
(in the root of this repository) to use your new image