Re: [PATCH v3 2/8] mingw: work around irregular failures of unlink on windows
- From
Erik Faye-Lund <kusmabite@gmail.com>
- Date
- Dec 14, 2010, 22:14 UTC
- Message-ID
- <AANLkTiksyVETuR8ftTojf=T2AhKGFtUAmqyj5u-00kW0@mail.gmail.com>
- In-Reply-To
- <20101214221134.GC4084@sandbox>
On Tue, Dec 14, 2010 at 11:11 PM, Heiko Voigt <hvoigt@hvoigt.net> wrote:
Show 29 quoted lines
> If a file is opened by another process (e.g. indexing of an IDE) for
> reading it is not allowed to be deleted. So in case unlink fails retry
> after waiting for some time. This extends the workaround from 6ac6f878.
>
> Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
> ---
> compat/mingw.c | 31 +++++++++++++++++++++++++++++--
> 1 files changed, 29 insertions(+), 2 deletions(-)
>
> diff --git a/compat/mingw.c b/compat/mingw.c
> index a7e1c6b..52183a7 100644
> --- a/compat/mingw.c
> +++ b/compat/mingw.c
> @@ -3,6 +3,8 @@
> #include <conio.h>
> #include "../strbuf.h"
>
> +static const int delay[] = { 0, 1, 10, 20, 40 };
> +
> int err_win_to_posix(DWORD winerr)
> {
> int error = ENOSYS;
> @@ -116,12 +118,38 @@ int err_win_to_posix(DWORD winerr)
> return error;
> }
>
> +static inline int is_file_in_use_error(DWORD errcode)
> +{
> + switch(GetLastError()) {Why pass the error code in, just to ignore it? Shouldn't this switch on "errcode" instead?