#
423:449f2a9c5e62 |
| 27-Dec-2017 |
Max Romanov |
Implementing the ability to cancel request before worker starts processing it.
|
#
417:47366bb40f2c |
| 25-Dec-2017 |
Valentin Bartenev |
HTTP parser: reworked header fields handling.
|
#
416:2101db5383a7 |
| 25-Dec-2017 |
Max Romanov |
Restoring apps in case of reconfiguration error.
|
#
386:d9e23ae1617d |
| 27-Nov-2017 |
Igor Sysoev |
A number of engine connections is decreased on connection close.
|
Revision tags: 0.2 |
|
#
367:1a733ff177d7 |
| 19-Oct-2017 |
Max Romanov |
Keep application worker until response for all requests received.
|
#
361:260625842635 |
| 19-Oct-2017 |
Igor Sysoev |
Fixed the bug introduced in the previous changeset.
|
#
359:d4848619451a |
| 18-Oct-2017 |
Igor Sysoev |
Router: fixed segfault after configuration change.
|
#
358:40bbd4c2349d |
| 17-Oct-2017 |
Igor Sysoev |
Storing memory cache slot hint inside nxt_sockaddr_t.
|
#
356:b6c89a2f537b |
| 10-Oct-2017 |
Valentin Bartenev |
Optimized application type handling.
|
#
352:47649fbbcb53 |
| 04-Oct-2017 |
Max Romanov |
Port message fragmentation supported.
- Each sendmsg() transmits no more than port->max_size payload data. - Longer buffers are fragmented and send using multiple sendmsg() calls. - On receive side,
Port message fragmentation supported.
- Each sendmsg() transmits no more than port->max_size payload data. - Longer buffers are fragmented and send using multiple sendmsg() calls. - On receive side, buffers are connected in chain. - Number of handler calls is the same as number of nxt_port_socket_write() calls. - nxt_buf_make_plain() function introduced to make single plain buffer from the chain.
show more ...
|
#
351:92038a9f4937 |
| 04-Oct-2017 |
Max Romanov |
Optimized request<->app link allocation.
Only purpose of request<->app link instance is to be enqueued in application requests queue.
It is possible to avoid request<->app link allocation from memo
Optimized request<->app link allocation.
Only purpose of request<->app link instance is to be enqueued in application requests queue.
It is possible to avoid request<->app link allocation from memory pool in case when spare application port is available. Instance from local stack can be used to prepare and send message to application.
show more ...
|
#
347:e14011f5f005 |
| 04-Oct-2017 |
Max Romanov |
Using port 'post' facility to proxy remove pid message to workers.
Remove pid proxying to worker engines implementation was originally overcomplicated. Memory pool and 2 engine posts (there and bac
Using port 'post' facility to proxy remove pid message to workers.
Remove pid proxying to worker engines implementation was originally overcomplicated. Memory pool and 2 engine posts (there and back again) are optimized out and replaced with band new nxt_port_post() call.
show more ...
|
#
346:88444c3b5dff |
| 04-Oct-2017 |
Max Romanov |
Using request mem pool for req<->app link.
Request <-> application link structure (nxt_req_app_link_t) used to register the request in application request queue (nxt_app_t.requests) and generate app
Using request mem pool for req<->app link.
Request <-> application link structure (nxt_req_app_link_t) used to register the request in application request queue (nxt_app_t.requests) and generate application-specific port message.
Now it is allocated from request pool. This pool created for request parsing and used to allocate and store information specific to this request.
show more ...
|
#
345:04a80660766c |
| 04-Oct-2017 |
Max Romanov |
Fixed error generation during request processing.
Request can be processed in thread different from the thread where the connection originally handled.
Because of possible racing conditions, using
Fixed error generation during request processing.
Request can be processed in thread different from the thread where the connection originally handled.
Because of possible racing conditions, using original connection structures is unsafe. To solve this, error condition is registered in 'ra' (request <-> application link) and traversed back to original connection thread where the error message can be generated and send back to client.
show more ...
|
#
343:9fa845db60fb |
| 04-Oct-2017 |
Max Romanov |
Introducing use counters for port and app. Thread safe port write.
Use counter helps to simplify logic around port and application free.
Port 'post' function introduced to simplify post execution
Introducing use counters for port and app. Thread safe port write.
Use counter helps to simplify logic around port and application free.
Port 'post' function introduced to simplify post execution of particular function to original port engine's thread.
Write message queue is protected by mutex which makes port write operation thread safe.
show more ...
|
#
342:82c2825a617a |
| 04-Oct-2017 |
Max Romanov |
Using engine memiory pool for port write allocations.
To allow use port from different threads, the first step is to avoid using port's memory pool for temporary allocations required to send data th
Using engine memiory pool for port write allocations.
To allow use port from different threads, the first step is to avoid using port's memory pool for temporary allocations required to send data through the port. Including but not limited by: - buffers for data; - send message structures; - new mmap fd notifications;
It is still safe to use port memory pool for incoming buffers allocations because recieve operation bound to single thread.
show more ...
|
#
340:c68833ba4383 |
| 04-Oct-2017 |
Max Romanov |
Fixing memory leak when handling remove pid message.
Worker threads ports need to receive 'remove pid' message to properly handle application process exit case and finish requests processed by parti
Fixing memory leak when handling remove pid message.
Worker threads ports need to receive 'remove pid' message to properly handle application process exit case and finish requests processed by particular application worker. Main process send 'remove pid' notification to service thread port only and this message must be 'proxied' to other running engines.
Separate memory pool created for this message. For each engine structure required to post message to engine allocate from the pool using 'retain' allocation method. After successfull post structure will be freed using 'release' method. To completely destroy poll one more 'release' should be called to release initial reference count.
I'm afraid this should be simplified using good old malloc() and free() calls.
show more ...
|
#
337:854a1a440616 |
| 27-Sep-2017 |
Igor Sysoev |
Event engine memory cache for nxt_sockaddr_t.
Introducing event engine memory cache and using the cache for nxt_sockaddr_t structures.
|
#
326:2aad6a5fac13 |
| 22-Sep-2017 |
Valentin Bartenev |
Removed fibers from compilation.
It's not used anyway, but breaks building with musl.
This closes issue #5 on GitHub.
|
#
320:d385755599d6 |
| 15-Sep-2017 |
Max Romanov |
Introducing named port message handlers to avoid misprints.
|
#
319:e5a65b58101f |
| 15-Sep-2017 |
Max Romanov |
Fixing memory leak of request parse context.
|
#
318:c2442f5e054d |
| 15-Sep-2017 |
Max Romanov |
Introducing application timeout.
|
#
317:94010c8bd7bc |
| 15-Sep-2017 |
Valentin Bartenev |
Fixed port handlers arrays.
|
#
316:52b6535fece5 |
| 14-Sep-2017 |
Igor Sysoev |
Router: more logical code order change.
Updating the router engines list before posting jobs to worker thread engines is more logical because worker threads may exit after the posting. However, the
Router: more logical code order change.
Updating the router engines list before posting jobs to worker thread engines is more logical because worker threads may exit after the posting. However, the previous code was safe because an engine is freed by the router main thread after worker its thread has exited.
show more ...
|
#
315:1726a13006e2 |
| 14-Sep-2017 |
Igor Sysoev |
Router: fixed segmentation fault.
The router process exited abnormally on reconfiguration if number of worker threads had been decreased on the previous reconfiguration. Besides the list of router e
Router: fixed segmentation fault.
The router process exited abnormally on reconfiguration if number of worker threads had been decreased on the previous reconfiguration. Besides the list of router engines should be updated only after a new configuration joints have been prepared for all engines.
show more ...
|