runshell: fix some mess left in a race
This seems to be the best way to deal with the race; if the first and second runshell are running very close together, the first will generate the locale directory, and a second test -d would still leave a race window.
This commit is contained in:
parent
e0ca1236ee
commit
5863d14fd2
1 changed files with 3 additions and 0 deletions
|
@ -189,6 +189,9 @@ if [ -z "${LOCPATH+set}" ] && [ -z "$GIT_ANNEX_PACKAGE_INSTALL" ]; then
|
|||
# use LANG=C to avoid it reading the system locale archive.
|
||||
I18NPATH="$base/i18n" LANG=C localedef -i "${localeenv%%.*}" -c -f UTF-8 "$LOCPATH/$localeenv.new.$$" &&
|
||||
mv "$LOCPATH/$localeenv.new.$$" "$LOCPATH/$localeenv"
|
||||
# In a race, LOCPATH may get created by another process,
|
||||
# in which cache the mv above would put it here.
|
||||
rm -rf "$LOCPATH/$localeenv/$localeenv.new.$$"
|
||||
) >/dev/null 2>/dev/null || true
|
||||
fi
|
||||
fi
|
||||
|
|
Loading…
Reference in a new issue