History log of /unit/src/nxt_port_memory_int.h (Results 1 – 11 of 11)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 2139:99d792169ffb 16-Jun-2022 Andrew Clayton

Constified numerous function parameters.

As was pointed out by the cppcheck[0] static code analysis utility we
can mark numerous function parameters as 'const'. This acts as a hint to
the compiler a

Constified numerous function parameters.

As was pointed out by the cppcheck[0] static code analysis utility we
can mark numerous function parameters as 'const'. This acts as a hint to
the compiler about our intentions and the compiler will tell us when we
deviate from them.

[0]: https://cppcheck.sourceforge.io/

show more ...


# 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, 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 ...


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
# 1321:2c7f79bf0a1f 24-Dec-2019 Max Romanov

Introducing port messages to notify about out of shared memory.

- OOSM (out of shared memory). Sent by application process to router
when application reaches the limit of allocated shared memory

Introducing port messages to notify about out of shared memory.

- OOSM (out of shared memory). Sent by application process to router
when application reaches the limit of allocated shared memory and
needs more.
- SHM_ACK. Sent by router to application when the application's shared
memory is released and the OOSM flag is enabled for the segment.

This implements blocking mode (the library waits for SHM_ACK in case of
out of shared memory condition and retries allocating the required memory
amount) and non-blocking mode (the library notifies the application that
it's out of shared memory and returns control to the application module
that sets up the output queue and puts SHM_ACK in the main message loop).

show more ...


Revision tags: 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, 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
# 723:c48e0ee3a8b3 12-Jul-2018 Max Romanov

Enabled body buffer shared memory segmentation.

Changeset #699 fixes shared memory allocation: continous buffer with
requested size should be allocated or function failed. For body longer
than 10 M

Enabled body buffer shared memory segmentation.

Changeset #699 fixes shared memory allocation: continous buffer with
requested size should be allocated or function failed. For body longer
than 10 Mb, this allocation will definitely fails.

For body buffer it is not required to send it in a single continous buffer,
so, need to request minimum reasonable amount of shared memory and try to
extend it, if possible or allocate next buffer.

show more ...


# 699:4712cdf25154 20-Jun-2018 Max Romanov

Fixed allocation of multiple shared memory chunks.

Previously, one shared memory chunk was allocated under mutex and other
chunks (if required) were allocated using atomic operations. So such
alloc

Fixed allocation of multiple shared memory chunks.

Previously, one shared memory chunk was allocated under mutex and other
chunks (if required) were allocated using atomic operations. So such
allocation is not guaranteed and the result buffer can be less than
requested.

This commit moves multiple chunks allocation under mutex and guarantees
the result buffer is large enough.

show more ...


Revision tags: 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 ...


# 363:0738690e6557 19-Oct-2017 Max Romanov

Introducing src_pid for mmap header for accurate buf completion.

This allows to use shared memory to communicate with main process.

This patch changes shared memory segment format and breaks compat

Introducing src_pid for mmap header for accurate buf completion.

This allows to use shared memory to communicate with main process.

This patch changes shared memory segment format and breaks compatibility
with older modules.

show more ...


# 323:95379c881deb 18-Sep-2017 Max Romanov

Fixing shared memory thread safety issue.

Do not reuse shared memory segment with different port until this segment
successfully received and indexed on other side. However, segment can be used
to t

Fixing shared memory thread safety issue.

Do not reuse shared memory segment with different port until this segment
successfully received and indexed on other side. However, segment can be used
to transfer data via the port it was sent at any time.

show more ...


Revision tags: 0.1
# 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 ...