diff options
Diffstat (limited to 'src/os/win32')
| -rw-r--r-- | src/os/win32/ngx_files.c | 22 | ||||
| -rw-r--r-- | src/os/win32/ngx_win32_config.h | 35 |
2 files changed, 38 insertions, 19 deletions
diff --git a/src/os/win32/ngx_files.c b/src/os/win32/ngx_files.c index 00d6bbc8e..ce0fdc966 100644 --- a/src/os/win32/ngx_files.c +++ b/src/os/win32/ngx_files.c @@ -174,9 +174,10 @@ ssize_t ngx_write_chain_to_file(ngx_file_t *file, ngx_chain_t *cl, ngx_int_t ngx_win32_rename_file(ngx_str_t *from, ngx_str_t *to, ngx_pool_t *pool) { - int rc, collision; - u_int num; - u_char *name; + u_char *name; + ngx_int_t rc; + ngx_uint_t collision; + ngx_atomic_uint_t num; if (!(name = ngx_palloc(pool, to->len + 1 + 10 + 1 + sizeof("DELETE")))) { return NGX_ERROR; @@ -188,18 +189,19 @@ ngx_int_t ngx_win32_rename_file(ngx_str_t *from, ngx_str_t *to, /* mutex_lock() (per cache or single ?) */ - do { + for ( ;; ) { num = ngx_next_temp_number(collision); - ngx_sprintf(name + to->len, ".%010u.DELETE", num); + ngx_sprintf(name + to->len, ".%0muA.DELETE", num); - if (MoveFile((const char *) to->data, (const char *) name) == 0) { - collision = 1; - ngx_log_error(NGX_LOG_ERR, pool->log, ngx_errno, - "MoveFile() failed"); + if (MoveFile((const char *) to->data, (const char *) name) != 0) { + break; } - } while (collision); + collision = 1; + + ngx_log_error(NGX_LOG_ERR, pool->log, ngx_errno, "MoveFile() failed"); + } if (MoveFile((const char *) from->data, (const char *) to->data) == 0) { rc = NGX_ERROR; diff --git a/src/os/win32/ngx_win32_config.h b/src/os/win32/ngx_win32_config.h index 5bdf91f66..36af23906 100644 --- a/src/os/win32/ngx_win32_config.h +++ b/src/os/win32/ngx_win32_config.h @@ -40,8 +40,10 @@ /* disable some "-W4" level warnings */ -/* disable warnings about some 'type cast */ +/* 'type cast': from function pointer to data pointer */ #pragma warning(disable:4054) + +/* 'type cast': from data pointer to function pointer */ #pragma warning(disable:4055) /* unreferenced formal parameter */ @@ -56,34 +58,48 @@ /* assignment within conditional expression */ #pragma warning(disable:4706) -/* disable "function 'ngx_handle_write_event' not inlined" */ +/* function 'ngx_handle_write_event' not inlined */ #pragma warning(disable:4710) #endif #ifdef __WATCOMC__ + /* unreachable code */ #pragma disable_message(201) -/* disable "Symbol 'ngx_rbtree_min' has been defined, but not referenced" */ + +/* symbol 'ngx_rbtree_min' has been defined, but not referenced */ #pragma disable_message(202) + #endif #ifdef __BORLANDC__ + /* the end of the precompiled headers */ #pragma hdrstop +/* + * 'fd' is assigned a value that is never used in function ngx_event_init_conf + */ +#pragma warn -8004 + +/* condition is always false */ +#pragma warn -8008 + +/* functions containing (for|while|some if) are not expanded inline */ #pragma warn -8027 + +/* unreferenced formal parameter */ #pragma warn -8057 + +/* assignment within conditional expression */ #pragma warn -8060 -/* STUB */ -#pragma warn -8004 -#pragma warn -8008 -#pragma warn -8065 +/* unreachable code */ #pragma warn -8066 -#pragma warn -8075 + #endif @@ -96,7 +112,8 @@ #ifdef _MSC_VER typedef unsigned __int32 uint32_t; typedef __int32 int32_t; -#else /* __WATCOMC__ */ + +#else /* __WATCOMC__ and __BORLANDC__ */ typedef unsigned int uint32_t; typedef int int32_t; #endif |
