summaryrefslogtreecommitdiffhomepage
path: root/src/nxt_port_socket.c
diff options
context:
space:
mode:
authorMax Romanov <max.romanov@nginx.com>2017-10-04 14:58:13 +0300
committerMax Romanov <max.romanov@nginx.com>2017-10-04 14:58:13 +0300
commit414d508e04d26ebef0e3e1ba4ed518b11d3af1a0 (patch)
treecb580219c1a313021e8c56f3a1abed9dfe1b15f0 /src/nxt_port_socket.c
parentba311997866a4c2ef6ceeaac846832a85bd86f17 (diff)
downloadunit-414d508e04d26ebef0e3e1ba4ed518b11d3af1a0.tar.gz
unit-414d508e04d26ebef0e3e1ba4ed518b11d3af1a0.tar.bz2
Using engine memiory pool for port write allocations.
To allow use port from different threads, the first step is to avoid using port's memory pool for temporary allocations required to send data through the port. Including but not limited by: - buffers for data; - send message structures; - new mmap fd notifications; It is still safe to use port memory pool for incoming buffers allocations because recieve operation bound to single thread.
Diffstat (limited to 'src/nxt_port_socket.c')
-rw-r--r--src/nxt_port_socket.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/nxt_port_socket.c b/src/nxt_port_socket.c
index 3f7ad954..75706459 100644
--- a/src/nxt_port_socket.c
+++ b/src/nxt_port_socket.c
@@ -194,7 +194,8 @@ nxt_port_socket_write(nxt_task_t *task, nxt_port_t *port, nxt_uint_t type,
} nxt_queue_loop;
- msg = nxt_mp_retain(port->mem_pool, sizeof(nxt_port_send_msg_t));
+ msg = nxt_mp_retain(task->thread->engine->mem_pool,
+ sizeof(nxt_port_send_msg_t));
if (nxt_slow_path(msg == NULL)) {
return NXT_ERROR;
}
@@ -215,7 +216,7 @@ nxt_port_socket_write(nxt_task_t *task, nxt_port_t *port, nxt_uint_t type,
msg->work.data = task->thread->engine;
msg->engine = task->thread->engine;
- msg->mem_pool = port->mem_pool;
+ msg->mem_pool = msg->engine->mem_pool;
msg->port_msg.stream = stream;
msg->port_msg.pid = nxt_pid;