Changing router to application shared memory exchange protocol.

The application process needs to request the shared memory segment from the
router instead of the latter pushing the segment before sending a request to
the application.  This is required to simplify the communication between the
router and the application and to prepare the router for using the application
shared port and then the queue.
This commit is contained in:
Max Romanov
2020-08-11 19:20:13 +03:00
parent 3cbc22a6dc
commit 6e31d6cd39
8 changed files with 374 additions and 179 deletions

View File

@@ -23,7 +23,7 @@ struct nxt_port_mmap_tracking_s {
};
nxt_int_t
nxt_port_mmap_get_tracking(nxt_task_t *task, nxt_port_t *port,
nxt_port_mmap_get_tracking(nxt_task_t *task, nxt_port_mmaps_t *mmaps,
nxt_port_mmap_tracking_t *tracking, uint32_t stream);
nxt_bool_t
@@ -37,14 +37,12 @@ nxt_bool_t
nxt_port_mmap_tracking_read(nxt_task_t *task, nxt_port_recv_msg_t *msg);
/*
* Allocates nxt_but_t structure from port's mem_pool, assigns this buf 'mem'
* pointers to first available shared mem bucket(s). 'size' used as a hint to
* acquire several successive buckets if possible.
*
* This function assumes that current thread operates the 'port' exclusively.
* Allocates nxt_but_t structure from task's thread engine mem_pool, assigns
* this buf 'mem' pointers to first available shared mem bucket(s). 'size'
* used as a hint to acquire several successive buckets if possible.
*/
nxt_buf_t *
nxt_port_mmap_get_buf(nxt_task_t *task, nxt_port_t *port, size_t size);
nxt_port_mmap_get_buf(nxt_task_t *task, nxt_port_mmaps_t *mmaps, size_t size);
nxt_int_t nxt_port_mmap_increase_buf(nxt_task_t *task, nxt_buf_t *b,
size_t size, size_t min_size);