diff options
author | Max Romanov <max.romanov@nginx.com> | 2017-10-04 14:58:13 +0300 |
---|---|---|
committer | Max Romanov <max.romanov@nginx.com> | 2017-10-04 14:58:13 +0300 |
commit | 414d508e04d26ebef0e3e1ba4ed518b11d3af1a0 (patch) | |
tree | cb580219c1a313021e8c56f3a1abed9dfe1b15f0 /src/nxt_port.c | |
parent | ba311997866a4c2ef6ceeaac846832a85bd86f17 (diff) | |
download | unit-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.c')
-rw-r--r-- | src/nxt_port.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/nxt_port.c b/src/nxt_port.c index bec08477..d7f42012 100644 --- a/src/nxt_port.c +++ b/src/nxt_port.c @@ -195,7 +195,8 @@ nxt_port_send_port(nxt_task_t *task, nxt_port_t *port, nxt_port_t *new_port, nxt_buf_t *b; nxt_port_msg_new_port_t *msg; - b = nxt_buf_mem_ts_alloc(task, port->mem_pool, sizeof(nxt_port_data_t)); + b = nxt_buf_mem_ts_alloc(task, task->thread->engine->mem_pool, + sizeof(nxt_port_data_t)); if (nxt_slow_path(b == NULL)) { return NXT_ERROR; } @@ -347,7 +348,8 @@ nxt_port_change_log_file(nxt_task_t *task, nxt_runtime_t *rt, nxt_uint_t slot, port = nxt_process_port_first(process); - b = nxt_buf_mem_alloc(port->mem_pool, sizeof(nxt_port_data_t), 0); + b = nxt_buf_mem_ts_alloc(task, task->thread->engine->mem_pool, + sizeof(nxt_port_data_t)); if (nxt_slow_path(b == NULL)) { continue; } |