History log of /unit/src/nxt_port_memory.h (Results 1 – 14 of 14)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 2126:8542c8141a13 07-Jun-2022 Max Romanov

Removing unused tracking fields and functions.

The message tracking is unused since 1d84b9e4b459 commit.

This fixes the issue found by Coverity (CID 376263).


Revision tags: 1.27.0-1, 1.27.0, 1.26.1-1, 1.26.1, 1.26.0-1, 1.26.0, 1.25.0-1, 1.25.0, 1.24.0-1, 1.24.0, 1.23.0-1, 1.23.0, 1.22.0-1, 1.22.0, 1.21.0-1, 1.21.0
# 1662:1472957bc7bd 27-Oct-2020 Max Romanov

Router: broadcasting the SHM_ACK message to all process ports.


Revision tags: 1.20.0-1, 1.20.0, 1.19.0-1, 1.19.0
# 1546:06017e6e3a5f 11-Aug-2020 Max Romanov

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 se

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.

show more ...


# 1526:5c2a0b6f92e7 25-Jul-2020 Max Romanov

Using plain shared memory for configuration pass.

There is no restrictions on configration size and using segmented shared memory
only doubles memory usage because to parse configration on router si

Using plain shared memory for configuration pass.

There is no restrictions on configration size and using segmented shared memory
only doubles memory usage because to parse configration on router side,
it needs to be 'plain' e. g. located in single continous memory buffer.

show more ...


Revision tags: 1.18.0-1, 1.18.0, 1.17.0-1, 1.17.0, 1.16.0-1, 1.16.0, 1.15.0-1, 1.15.0, 1.14.0-1, 1.14.0, 1.13.0-1, 1.13.0, 1.12.0-1, 1.12.0, 1.11.0-2, 1.11.0-1, 1.11.0, 1.10.0-2, 1.10.0-1, 1.10.0
# 1125:f92f3cd41257 15-Aug-2019 Max Romanov

Fixing multi-thread port write racing conditions.


Revision tags: 1.9.0-1, 1.9.0, 1.8.0-1, 1.8.0, 1.7.1-1, 1.7.1, 1.7-1, 1.7, 1.6-1, 1.6, 1.5-1, 1.5, 1.4-2, 1.4, 1.3, 1.2, 1.1, 1.0, 0.7, 0.6, 0.5, 0.4, 0.3
# 423:449f2a9c5e62 27-Dec-2017 Max Romanov

Implementing the ability to cancel request before worker starts processing it.


Revision tags: 0.2
# 365:28b2a468be43 19-Oct-2017 Max Romanov

Introducing mmap_handler to count references to shared memory.


"All problems in computer science can be
solved by another level of indirection"

Introducing mmap_handler to count references to shared memory.


"All problems in computer science can be
solved by another level of indirection"

Butler Lampson

Completion handlers for application response buffers executed after
sending the data to client. Application worker can be stopped right
after send response buffers to router. Worker stop causes removal
of all data structures for the worker.

To prevent shared memory segment unmap, need to count the number of
buffers which uses it. So instead of direct reference to shared
memory, need to reference to intermediate 'handler' structure with
use counter and pointer to shared memory.

show more ...


# 364:742e5c203c6d 19-Oct-2017 Max Romanov

Supporting concurrent shared memory fd receive in router.

Two different router threads may send different requests to single
application worker. In this case shared memory fds from worker
to router

Supporting concurrent shared memory fd receive in router.

Two different router threads may send different requests to single
application worker. In this case shared memory fds from worker
to router will be send over 2 different router ports. These fds
will be received and processed by different threads in any order.

This patch made possible to add incoming shared memory segments in
arbitrary order. Additionally, array and memory pool are no longer
used to store segments because of pool's single threaded nature.

Custom array-like structure nxt_port_mmaps_t introduced.

show more ...


Revision tags: 0.1
# 206:86a529b2ea9b 11-Aug-2017 Max Romanov

Request body read state implemented.

With specific timeout and buffer size settings.


# 197:ae8f843e1fd4 02-Aug-2017 Max Romanov

Added basic port error handler.


# 141:96a65c601420 12-Jul-2017 Max Romanov

New process port exchange changed. READY message type introduced.

Application process start request DATA message from router to master.
Master notifies router via NEW_PORT message after worker proce

New process port exchange changed. READY message type introduced.

Application process start request DATA message from router to master.
Master notifies router via NEW_PORT message after worker process become ready.

show more ...


# 82:4be7aabeb2d1 23-Jun-2017 Max Romanov

Moved message size to nxt_port_recv_msg_t for convenience.


# 80:1b394e999c7c 23-Jun-2017 Max Romanov

Store pointer to shared memory start in buf->parent.

nxt_port_mmap_t stored in arrays and it is unsafe to store
pointer to array element.

Shared memory structures and macros moved to separate heade

Store pointer to shared memory start in buf->parent.

nxt_port_mmap_t stored in arrays and it is unsafe to store
pointer to array element.

Shared memory structures and macros moved to separate header
file to be used by GO package.

show more ...


# 42:def41906e4a5 12-May-2017 Max Romanov

Using shared memory to send data via nxt_port.

Usage:
b = nxt_port_mmap_get_buf(task, port, size);
b->mem.free = nxt_cpymem(b->mem.free, data, size);
nxt_port_socket_write(task, port, NX

Using shared memory to send data via nxt_port.

Usage:
b = nxt_port_mmap_get_buf(task, port, size);
b->mem.free = nxt_cpymem(b->mem.free, data, size);
nxt_port_socket_write(task, port, NXT_PORT_MSG_DATA, -1, 0, b);

show more ...