Re: About close() in commit_lock_file()
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Aug 5, 2013, 16:56 UTC
- Message-ID
- <7vli4gkrf0.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <CACsJy8By1cpPZ5QyVd6VhKSkd-y_E6pTYdDimK9P0wXia-uMqg@mail.gmail.com>
Duy Nguyen <pclouds@gmail.com> writes:
Show 5 quoted lines
> close() is added in commit_lock_file(), before rename(), by 4723ee9 > (Close files opened by lock_file() before unlinking. - 2007-11-13), > which is needed by Windows. But doesn't that create a gap between > close() and rename() on other platforms where another process can > replace .lock file with something else before rename() is executed?
Interesting.
> Should we enclose close() in #ifdef __MINGW32__ (and maybe > __CYGWIN__)?
Or just have "close and retry" code after seeing rename() fails with some known errno, without singling out a particular platform?