annotate src/core/ngx_thread_pool.h @ 8998:308ac307b3e6 quic

QUIC: improved debug logging. - wording in log->action is adjusted to match function names. - connection close steps are made obvious and start with "quic close" prefix: *1 quic close initiated rc:-4 *1 quic close silent drain:0 timedout:1 *1 quic close resumed rc:-1 *1 quic close resumed rc:-1 *1 quic close resumed rc:-4 *1 quic close completed this makes it easy to understand if particular "close" record is an initial cause or lasting process, or the final one. - cases of close without quic connection now logged as "packet rejected": *14 quic run *14 quic packet rx long flags:ec version:1 *14 quic packet rx hs len:61 *14 quic packet rx dcid len:20 00000000000002c32f60e4aa2b90a64a39dc4228 *14 quic packet rx scid len:8 81190308612cd019 *14 quic expected initial, got handshake *14 quic packet done rc:-1 level:hs decr:0 pn:0 perr:0 *14 quic packet rejected rc:-1, cleanup connection *14 reusable connection: 0 this makes it easy to spot early packet rejection and avoid confuse with quic connection closing (which in fact was not even created). - packet processing summary now uses same prefix "quic packet done rc:" - added debug to places where packet was rejected without any reason logged
author Vladimir Homutov <vl@nginx.com>
date Tue, 01 Feb 2022 15:43:56 +0300
parents 466bd63b63d1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6018
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
1
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
2 /*
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
3 * Copyright (C) Nginx, Inc.
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
4 * Copyright (C) Valentin V. Bartenev
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
5 */
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
6
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
7
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
8 #ifndef _NGX_THREAD_POOL_H_INCLUDED_
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
9 #define _NGX_THREAD_POOL_H_INCLUDED_
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
10
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
11
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
12 #include <ngx_config.h>
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
13 #include <ngx_core.h>
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
14 #include <ngx_event.h>
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
15
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
16
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
17 struct ngx_thread_task_s {
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
18 ngx_thread_task_t *next;
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
19 ngx_uint_t id;
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
20 void *ctx;
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
21 void (*handler)(void *data, ngx_log_t *log);
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
22 ngx_event_t event;
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
23 };
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
24
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
25
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
26 typedef struct ngx_thread_pool_s ngx_thread_pool_t;
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
27
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
28
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
29 ngx_thread_pool_t *ngx_thread_pool_add(ngx_conf_t *cf, ngx_str_t *name);
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
30 ngx_thread_pool_t *ngx_thread_pool_get(ngx_cycle_t *cycle, ngx_str_t *name);
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
31
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
32 ngx_thread_task_t *ngx_thread_task_alloc(ngx_pool_t *pool, size_t size);
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
33 ngx_int_t ngx_thread_task_post(ngx_thread_pool_t *tp, ngx_thread_task_t *task);
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
34
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
35
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
36 #endif /* _NGX_THREAD_POOL_H_INCLUDED_ */