comparison src/os/win32/ngx_atomic.h @ 561:e48ebafc6939 release-0.3.2

nginx-0.3.2-RELEASE import *) Feature: the Sun Studio 10 C compiler support. *) Feature: the "proxy_upstream_max_fails", "proxy_upstream_fail_timeout", "fastcgi_upstream_max_fails", and "fastcgi_upstream_fail_timeout" directives.
author Igor Sysoev <igor@sysoev.ru>
date Wed, 12 Oct 2005 13:50:36 +0000
parents d7c90bb5ce83
children 9c2f3ed7a247
comparison
equal deleted inserted replaced
560:8886091eddd2 561:e48ebafc6939
12 #include <ngx_core.h> 12 #include <ngx_core.h>
13 13
14 14
15 #define NGX_HAVE_ATOMIC_OPS 1 15 #define NGX_HAVE_ATOMIC_OPS 1
16 16
17 typedef int32_t ngx_atomic_int_t; 17 typedef int32_t ngx_atomic_int_t;
18 typedef uint32_t ngx_atomic_uint_t; 18 typedef uint32_t ngx_atomic_uint_t;
19 typedef volatile ngx_atomic_uint_t ngx_atomic_t; 19 typedef volatile ngx_atomic_uint_t ngx_atomic_t;
20 #define NGX_ATOMIC_T_LEN sizeof("-2147483648") - 1 20 #define NGX_ATOMIC_T_LEN sizeof("-2147483648") - 1
21
22
23 #define ngx_atomic_inc(p) InterlockedIncrement((long *) p)
24 #define ngx_atomic_dec(p) InterlockedDecrement((long *) p)
25 21
26 22
27 #if defined( __WATCOMC__ ) || defined( __BORLANDC__ ) || ( _MSC_VER >= 1300 ) 23 #if defined( __WATCOMC__ ) || defined( __BORLANDC__ ) || ( _MSC_VER >= 1300 )
28 24
29 /* the new SDK headers */ 25 /* the new SDK headers */
40 == (void *) old) 36 == (void *) old)
41 37
42 #endif 38 #endif
43 39
44 40
41 #define ngx_atomic_fetch_add(p, add) InterlockedExchangeAdd((long *) p, add)
42
43
45 void ngx_spinlock(ngx_atomic_t *lock, ngx_uint_t spin); 44 void ngx_spinlock(ngx_atomic_t *lock, ngx_uint_t spin);
46 45
47 #define ngx_trylock(lock) (*(lock) == 0 && ngx_atomic_cmp_set(lock, 0, 1)) 46 #define ngx_trylock(lock) (*(lock) == 0 && ngx_atomic_cmp_set(lock, 0, 1))
48 #define ngx_unlock(lock) *(lock) = 0 47 #define ngx_unlock(lock) *(lock) = 0
49 48