Using shared memory to send data via nxt_port.
Usage:
b = nxt_port_mmap_get_buf(task, port, size);
b->mem.free = nxt_cpymem(b->mem.free, data, size);
nxt_port_socket_write(task, port, NXT_PORT_MSG_DATA, -1, 0, b);
This commit is contained in:
@@ -148,6 +148,7 @@ done:
|
||||
|
||||
sb->buf = b;
|
||||
sb->size = total;
|
||||
sb->niov = n;
|
||||
|
||||
return n;
|
||||
}
|
||||
@@ -390,6 +391,14 @@ nxt_sendbuf_completion(nxt_task_t *task, nxt_work_queue_t *wq, nxt_buf_t *b,
|
||||
break;
|
||||
}
|
||||
|
||||
if (nxt_buf_is_port_mmap(b)) {
|
||||
/*
|
||||
* buffer has been sent to other side which is now
|
||||
* responsible for shared memory bucket release
|
||||
*/
|
||||
b->is_port_mmap_sent = 1;
|
||||
}
|
||||
|
||||
if (sent < size) {
|
||||
|
||||
if (nxt_buf_is_mem(b)) {
|
||||
|
||||
Reference in New Issue
Block a user