History log of /unit/src/nxt_unit.h (Results 1 – 25 of 26)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 2014:f8a0992944df 24-Nov-2021 Max Romanov

Sending shared port to application prototype.

Application process started with shared port (and queue) already configured.
But still waits for PORT_ACK message from router to start request processin

Sending shared port to application prototype.

Application process started with shared port (and queue) already configured.
But still waits for PORT_ACK message from router to start request processing
(so-called "ready state").

Waiting for router confirmation is necessary. Otherwise, the application may
produce response and send it to router before the router have the information
about the application process. This is a subject of further optimizations.

show more ...


Revision tags: 1.26.0-1, 1.26.0
# 1996:35873fa78fed 09-Nov-2021 Tiago Natel de Moura

Introduced SCM_CREDENTIALS / SCM_CREDS in the socket control msgs.


# 1980:43553aa72111 28-Oct-2021 Max Romanov

Moving request limit control to libunit.

Introducting application graceful stop. For now only used when application
process reach request limit value.

This closes #585 issue on GitHub.


Revision tags: 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
# 1713:f5ba5973a0a3 18-Nov-2020 Max Romanov

Go: removing C proxy functions and re-using goroutines.


# 1710:e598cd15bd91 18-Nov-2020 Max Romanov

Libunit: improving logging consistency.

Debug logging depends on macros defined in nxt_auto_config.h.


# 1666:c224d375d89b 27-Oct-2020 Max Romanov

Router: introducing the PORT_ACK message.

The PORT_ACK message is the router's response to the application's NEW_PORT
message. After receiving PORT_ACK, the application is safe to process requests

Router: introducing the PORT_ACK message.

The PORT_ACK message is the router's response to the application's NEW_PORT
message. After receiving PORT_ACK, the application is safe to process requests
using this port.

This message avoids a racing condition when the application starts processing a
request from the shared queue and sends REQ_HEADERS_ACK. The REQ_HEADERS_ACK
message contains the application port ID as reply_port, which the router uses
to send request data. When the application creates a new port, it
immediately sends it to the main router thread. Because the request is
processed outside the main thread, a racing condition can occur between the
receipt of the new port in the main thread and the receipt of REQ_HEADERS_ACK
in the worker router thread where the same port is specified as reply_port.

show more ...


# 1664:7bf400458d40 27-Oct-2020 Max Romanov

Libunit: added a function to discern main and worker contexts.


# 1663:08a83734a986 27-Oct-2020 Max Romanov

Libunit: gracefully quitting a multicontext application.


Revision tags: 1.20.0-1, 1.20.0
# 1623:7cdddbe0fb45 01-Oct-2020 Max Romanov

Publishing libunit's malloc() and free() wrappers for apps.


# 1602:5f7638bf724e 18-Sep-2020 Artem Konev

Updated racially charged language in messages and comments.


Revision tags: 1.19.0-1, 1.19.0
# 1555:1d84b9e4b459 11-Aug-2020 Max Romanov

Introducing application and port shared memory queues.

The goal is to minimize the number of syscalls needed to deliver a message.


# 1547:cbcd76704c90 11-Aug-2020 Max Romanov

Introducing the shared application port.

This is the port shared between all application processes which use it to pass
requests for processing. Using it significantly simplifies the request
proces

Introducing the shared application port.

This is the port shared between all application processes which use it to pass
requests for processing. Using it significantly simplifies the request
processing code in the router. The drawback is 2 more file descriptors per each
configured application and more complex libunit message wait/read code.

show more ...


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


# 1545:78836321a126 11-Aug-2020 Max Romanov

Changing router to application port exchange protocol.

The application process needs to request the port from the router instead of the
latter pushing the port before sending a request to the applic

Changing router to application port exchange protocol.

The application process needs to request the port from the router instead of the
latter pushing the port 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 to use the application shared port and then the queue.

show more ...


# 1544:05af370e63b7 11-Aug-2020 Max Romanov

Adding a reference counter to the libunit port structure.

The goal is to minimize the number of (pid, id) to port hash lookups which
require a library mutex lock. The response port is found once pe

Adding a reference counter to the libunit port structure.

The goal is to minimize the number of (pid, id) to port hash lookups which
require a library mutex lock. The response port is found once per request,
while the read port is initialized at startup.

show more ...


# 1543:42f27153db91 11-Aug-2020 Max Romanov

Libunit refactoring: port management.

- Changed the port management callbacks to notifications, which e. g. avoids
the need to call the libunit function
- Added context and library instance referenc

Libunit refactoring: port management.

- Changed the port management callbacks to notifications, which e. g. avoids
the need to call the libunit function
- Added context and library instance reference counts for a safer resource
release
- Added the router main port initialization

show more ...


Revision tags: 1.18.0-1, 1.18.0, 1.17.0-1, 1.17.0
# 1436:44ccce64ddf9 30-Mar-2020 Max Romanov

Attributing libunit logging function for arguments validation.


Revision tags: 1.16.0-1, 1.16.0
# 1403:1cee885b7f10 12-Mar-2020 Max Romanov

Using disk file to store large request body.

This closes #386 on GitHub.


# 1398:05063d6eec8e 12-Mar-2020 Max Romanov

Introducing readline function in libunit.

Ruby and Java modules now use this function instead of own
implementations.


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


# 1320:4e70411b9842 24-Dec-2019 Max Romanov

Adding "limits/shm" configuration validation and parsing.


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
# 1131:ec7d924d8dfb 20-Aug-2019 Max Romanov

Introducing websocket support in router and libunit.


Revision tags: 1.9.0-1, 1.9.0, 1.8.0-1, 1.8.0
# 953:00d8049418cf 22-Feb-2019 Alexander Borisov

Improvement and unification of version processing in build scripts.

This also eliminates expressions that incompatible with BSD make, thus fixing
installation of Node.js module on FreeBSD (broken by

Improvement and unification of version processing in build scripts.

This also eliminates expressions that incompatible with BSD make, thus fixing
installation of Node.js module on FreeBSD (broken by dace60fc4926).

show more ...


Revision tags: 1.7.1-1, 1.7.1, 1.7-1, 1.7
# 877:ed8b1aaefdd1 19-Dec-2018 Alexander Borisov

libunit: added generation of version header file.


Revision tags: 1.6-1, 1.6
# 828:b9f7635e6be2 31-Oct-2018 Alexander Borisov

Node.js: added async request execution.


12