summaryrefslogtreecommitdiffhomepage
path: root/go/port.go
diff options
context:
space:
mode:
authorMax Romanov <max.romanov@nginx.com>2020-10-28 00:01:46 +0300
committerMax Romanov <max.romanov@nginx.com>2020-10-28 00:01:46 +0300
commit4cb8aeb31a8cf47f6c61aaccb95bbbf47cbc2393 (patch)
tree381eed08e9d478216eed51ea0301dae63b7dc4da /go/port.go
parent131b6a7ffab7b3303a00a50f5cf764dc99e23cc0 (diff)
downloadunit-4cb8aeb31a8cf47f6c61aaccb95bbbf47cbc2393.tar.gz
unit-4cb8aeb31a8cf47f6c61aaccb95bbbf47cbc2393.tar.bz2
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.
Diffstat (limited to 'go/port.go')
0 files changed, 0 insertions, 0 deletions