Mercurial > hg > nginx-quic
view src/os/unix/ngx_sunpro_x86.il @ 8515:c860f0b7010c
Core: disabled cloning sockets when testing config (ticket #2188).
Since we anyway do not set SO_REUSEPORT when testing configuration
(see ecb5cd305b06), trying to open additional sockets does not make much
sense, as all these additional sockets are expected to result in EADDRINUSE
errors from bind(). On the other hand, there are reports that trying
to open these sockets takes significant time under load: total configuration
testing time greater than 15s was observed in ticket #2188, compared to less
than 1s without load.
With this change, no additional sockets are opened during testing
configuration.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 31 May 2021 16:36:37 +0300 |
parents | 2cd019520210 |
children |
line wrap: on
line source
/ / Copyright (C) Igor Sysoev / Copyright (C) Nginx, Inc. / / ngx_atomic_uint_t ngx_atomic_cmp_set(ngx_atomic_t *lock, / ngx_atomic_uint_t old, ngx_atomic_uint_t set); / / the arguments are passed on stack (%esp), 4(%esp), 8(%esp) .inline ngx_atomic_cmp_set,0 movl (%esp), %ecx movl 4(%esp), %eax movl 8(%esp), %edx lock cmpxchgl %edx, (%ecx) setz %al movzbl %al, %eax .end / ngx_atomic_int_t ngx_atomic_fetch_add(ngx_atomic_t *value, / ngx_atomic_int_t add); / / the arguments are passed on stack (%esp), 4(%esp) .inline ngx_atomic_fetch_add,0 movl (%esp), %ecx movl 4(%esp), %eax lock xaddl %eax, (%ecx) .end / ngx_cpu_pause() / / the "rep; nop" is used instead of "pause" to avoid the "[ PAUSE ]" hardware / capability added by linker because Solaris/i386 does not know about it: / / ld.so.1: nginx: fatal: hardware capability unsupported: 0x2000 [ PAUSE ] .inline ngx_cpu_pause,0 rep; nop .end