Mercurial > hg > nginx-quic
annotate src/os/unix/ngx_sunpro_atomic_sparc64.h @ 7352:0de0b16a551c
SSL: corrected SSL_ERROR_WANT_WRITE / SSL_ERROR_WANT_READ logging.
While SSL_read() most likely to return SSL_ERROR_WANT_WRITE (and SSL_write()
accordingly SSL_ERROR_WANT_READ) during an SSL renegotiation, it is
not necessary mean that a renegotiation was started. In particular,
it can never happen during a renegotiation or can happen multiple times
during a renegotiation.
Because of the above, misleading "peer started SSL renegotiation" info
messages were replaced with "SSL_read: want write" and "SSL_write: want read"
debug ones.
Additionally, "SSL write handler" and "SSL read handler" are now logged
by the SSL write and read handlers, to make it easier to understand that
temporary SSL handlers are called instead of normal handlers.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 10 Sep 2018 18:57:19 +0300 |
parents | d620f497c50f |
children |
rev | line source |
---|---|
561 | 1 |
2 /* | |
3 * Copyright (C) Igor Sysoev | |
4412 | 4 * Copyright (C) Nginx, Inc. |
561 | 5 */ |
6 | |
7 | |
8 #if (NGX_PTR_SIZE == 4) | |
9 #define NGX_CASA ngx_casa | |
10 #else | |
11 #define NGX_CASA ngx_casxa | |
12 #endif | |
13 | |
14 | |
15 ngx_atomic_uint_t | |
16 ngx_casa(ngx_atomic_uint_t set, ngx_atomic_uint_t old, ngx_atomic_t *lock); | |
17 | |
18 ngx_atomic_uint_t | |
19 ngx_casxa(ngx_atomic_uint_t set, ngx_atomic_uint_t old, ngx_atomic_t *lock); | |
20 | |
21 /* the code in src/os/unix/ngx_sunpro_sparc64.il */ | |
22 | |
23 | |
24 static ngx_inline ngx_atomic_uint_t | |
25 ngx_atomic_cmp_set(ngx_atomic_t *lock, ngx_atomic_uint_t old, | |
26 ngx_atomic_uint_t set) | |
27 { | |
1186
c114defa4518
fix atomic operations on sparc64 built by SunPro C
Igor Sysoev <igor@sysoev.ru>
parents:
611
diff
changeset
|
28 set = NGX_CASA(set, old, lock); |
561 | 29 |
30 return (set == old); | |
577 | 31 } |
561 | 32 |
33 | |
34 static ngx_inline ngx_atomic_int_t | |
35 ngx_atomic_fetch_add(ngx_atomic_t *value, ngx_atomic_int_t add) | |
36 { | |
37 ngx_atomic_uint_t old, res; | |
38 | |
39 old = *value; | |
40 | |
41 for ( ;; ) { | |
42 | |
43 res = old + add; | |
44 | |
1186
c114defa4518
fix atomic operations on sparc64 built by SunPro C
Igor Sysoev <igor@sysoev.ru>
parents:
611
diff
changeset
|
45 res = NGX_CASA(res, old, value); |
561 | 46 |
47 if (res == old) { | |
48 return res; | |
49 } | |
50 | |
51 old = res; | |
52 } | |
53 } | |
563 | 54 |
55 | |
56 #define ngx_memory_barrier() \ | |
57 __asm (".volatile"); \ | |
58 __asm ("membar #LoadLoad | #LoadStore | #StoreStore | #StoreLoad"); \ | |
59 __asm (".nonvolatile") | |
611 | 60 |
61 #define ngx_cpu_pause() |