Commit Graph

27 Commits

Author SHA1 Message Date
Max Romanov
86740ab34b Introducing app joint to accurate app release.
For accurate app descriptor release, it is required to count the number of
use counts.  Use count increased when:
- app linked to configuration app queue;
- socket conf stores pointer to app;
- request for start app process posted to router service thread;

Application port has pointer to app, but it does not increase use count
to avoid use count loop.

Timer needs a pointer to nxt_timer_t which is stored in engine timers tree.
nxt_timer_t now resides in nxt_app_joint_t and does not lock the application.

Start process port RPC handlers is also linked to nxt_app_joint_t.

App joint (nxt_app_joint_t) is a 'weak pointer':
- single threaded;
- use countable;
- store pointer to nxt_app_t (which can be NULL);

nxt_app_t has pointer to nxt_app_joint_t and update its pointer to app.
2018-08-10 19:27:13 +03:00
Andrey Zelenkov
eee6102a28 Tests: more reconfigure tests. 2018-08-08 15:30:05 +03:00
Andrey Zelenkov
857bddeea6 Tests: added keep-alive with reconfiguration test. 2018-05-30 19:29:40 +03:00
Andrey Zelenkov
7d224bfc9e Tests: added tests for SERVER_SOFTWARE variable. 2018-05-21 16:41:33 +03:00
Andrey Zelenkov
d9f8479375 Tests: response handling improved. 2018-04-26 17:37:24 +03:00
Andrey Zelenkov
a44d358f29 Tests: added test for callable write() in Python. 2018-04-26 17:37:24 +03:00
Andrey Zelenkov
f6c3ef7ed3 Tests: added Python test with not iterable object. 2018-04-05 17:55:06 +03:00
Andrey Zelenkov
a01a98ce36 Tests: more Python tests. 2018-04-02 17:03:41 +03:00
Andrey Zelenkov
efb71121b9 Tests: added Python test with iterator context. 2018-04-02 17:03:41 +03:00
Andrey Zelenkov
2028f3a04b Tests: use "%Z" directive while parsing Date header. 2018-04-02 15:50:05 +03:00
Andrey Zelenkov
c7e67446a3 Tests: Ruby module. 2018-03-21 18:26:40 +03:00
Valentin Bartenev
bebc5845f8 Capitalization in the "Server" field. 2018-03-13 20:32:47 +03:00
Andrey Zelenkov
09f2009df5 Tests: reworked python tests with application. 2018-02-20 20:34:41 +03:00
Andrey Zelenkov
ee39da0e00 Tests: removed unused code in unit.py. 2018-02-14 17:14:16 +03:00
Valentin Bartenev
9646772a00 HTTP: the Date response header. 2018-02-12 16:58:40 +03:00
Andrey Zelenkov
0379f927b3 Tests: simplified test for query string. 2018-02-05 15:39:16 +03:00
Andrey Zelenkov
3faa154223 Tests: adjusted check_version()'s. 2018-02-05 15:39:11 +03:00
Max Romanov
9cd4fdbdb7 Introducing extended app process management.
- Pre-fork 'processes.spare' application processes;
- fork more processes to keep 'processes.spare' idle processes;
- fork on-demand up to 'processes.max' count;
- scale down idle application processes above 'processes.spare' after
  'processes.idle_timeout';
- number of concurrently started application processes also limited by
  'processes.spare' (or 1, if spare is 0).
2018-01-29 16:17:36 +03:00
Andrey Zelenkov
afa0fd9a71 Tests: reworked TestUnitHTTP. 2018-01-30 16:17:01 +03:00
Andrey Zelenkov
9f48f2b3e7 Tests: added methods to manage unit configuration. 2018-01-30 16:16:52 +03:00
Andrey Zelenkov
f115cb7032 Tests: small fixes. 2018-01-30 16:16:42 +03:00
Andrey Zelenkov
17e1a19063 Tests: added test for QUERY_STRING variable. 2018-01-24 15:45:39 +03:00
Andrey Zelenkov
955ba9d7dd Tests: added test with "Transfer-Encoding" header in 204 response. 2018-01-24 15:43:36 +03:00
Andrey Zelenkov
331514fcf7 Tests: using "expectedFailure" decorator instead of assertTry(). 2018-01-24 15:43:04 +03:00
Andrey Zelenkov
a949c2f088 Tests: using LF line ending for test files. 2018-01-17 15:52:01 +03:00
Andrey Zelenkov
819b43fc2d Tests: use "data" parameter in Request() to send body. 2018-01-15 19:59:47 +03:00
Andrey Zelenkov
b217a1e058 Tests: simple python application. 2018-01-15 16:06:26 +03:00