Mercurial > hg > nginx-quic
view src/os/unix/ngx_sunpro_sparc64.il @ 8602:d9e009b39596
HTTP/2: optimized processing of small DATA frames.
The request body filter chain is no longer called after processing
a DATA frame. Instead, we now post a read event to do this. This
ensures that multiple small DATA frames read during the same event loop
iteration are coalesced together, resulting in much faster processing.
Since rb->buf can now contain unprocessed data, window update is no
longer sent in ngx_http_v2_state_read_data() in case of flow control
being used due to filter buffering. Instead, window will be updated
by ngx_http_v2_read_client_request_body_handler() in the posted read
event.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 06 Sep 2021 14:54:50 +0300 |
parents | d620f497c50f |
children |
line wrap: on
line source
/ / Copyright (C) Igor Sysoev / Copyright (C) Nginx, Inc. / / "casa [%o2] 0x80, %o1, %o0" and / "casxa [%o2] 0x80, %o1, %o0" do the following: / / if ([%o2] == %o1) { / swap(%o0, [%o2]); / } else { / %o0 = [%o2]; / } / ngx_atomic_uint_t ngx_casa(ngx_atomic_uint_t set, ngx_atomic_uint_t old, / ngx_atomic_t *lock); / / the arguments are passed in the %o0, %o1, %o2 / the result is returned in the %o0 .inline ngx_casa,0 casa [%o2] 0x80, %o1, %o0 .end / ngx_atomic_uint_t ngx_casxa(ngx_atomic_uint_t set, ngx_atomic_uint_t old, / ngx_atomic_t *lock); / / the arguments are passed in the %o0, %o1, %o2 / the result is returned in the %o0 .inline ngx_casxa,0 casxa [%o2] 0x80, %o1, %o0 .end