Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2020-08-11 | Moving file descriptor blocking to libunit. | Max Romanov | 1 | -2/+0 | |
The default libunit behavior relies on blocking the recv() call for port file descriptors, which an application may override if needed. For external applications, port file descriptors were toggled to blocking mode before the exec() call. If the exec() call failed, descriptor remained blocked, so the process hanged while trying to read from it. This patch moves file descriptor mode switch inside libunit. | |||||
2020-08-11 | Libunit refactoring: port management. | Max Romanov | 1 | -2/+12 | |
- 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 | |||||
2020-05-28 | Added "rootfs" feature. | Tiago Natel de Moura | 1 | -0/+2 | |
2020-03-09 | Refactor of process management. | Tiago Natel de Moura | 1 | -5/+6 | |
The process abstraction has changed to: setup(task, process) start(task, process_data) prefork(task, process, mp) The prefork() occurs in the main process right before fork. The file src/nxt_main_process.c is completely free of process specific logic. The creation of a process now supports a PROCESS_CREATED state. The The setup() function of each process can set its state to either created or ready. If created, a MSG_PROCESS_CREATED is sent to main process, where external setup can be done (required for rootfs under container). The core processes (discovery, controller and router) doesn't need external setup, then they all proceeds to their start() function straight away. In the case of applications, the load of the module happens at the process setup() time and The module's init() function has changed to be the start() of the process. The module API has changed to: setup(task, process, conf) start(task, data) As a direct benefit of the PROCESS_CREATED message, the clone(2) of processes using pid namespaces now doesn't need to create a pipe to make the child block until parent setup uid/gid mappings nor it needs to receive the child pid. | |||||
2019-12-24 | Adding "limits/shm" configuration validation and parsing. | Max Romanov | 1 | -2/+2 | |
2019-02-28 | Introducing Java Servlet Container beta. | Max Romanov | 1 | -0/+1 | |
2018-10-09 | Renamed "go" application type to "external". | Valentin Bartenev | 1 | -0/+178 | |
There's nothing specific to Go language. This type of application object can be used to run any external application that utilizes libunit API. |