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.
|
# 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.$$" &&
|
I18NPATH="$base/i18n" LANG=C localedef -i "${localeenv%%.*}" -c -f UTF-8 "$LOCPATH/$localeenv.new.$$" &&
|
||||||
mv "$LOCPATH/$localeenv.new.$$" "$LOCPATH/$localeenv"
|
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
|
) >/dev/null 2>/dev/null || true
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue