Go: removing request registry.
Passing unsafe.Pointers (void *) from Go to C is complicated by an attempt to make such pointers less unsafe. A straightforward optimization is to replace 'unsafe.Pointer' with 'uintptr' (thanks to Xin Huang for the idea: https://stackoverflow.com/a/44826533 ). As a result, request registry with mutex is gone.
This commit is contained in:
@@ -185,7 +185,7 @@ nxt_go_ctx_add_msg(nxt_go_run_ctx_t *ctx, nxt_port_msg_t *port_msg, size_t size)
|
||||
msg->start_offset = ctx->msg_last->start_offset;
|
||||
|
||||
if (ctx->msg_last == &ctx->msg) {
|
||||
msg->start_offset += ctx->r.body.preread_size;
|
||||
msg->start_offset += ctx->request.body.preread_size;
|
||||
|
||||
} else {
|
||||
msg->start_offset += ctx->msg_last->data_size;
|
||||
@@ -219,6 +219,8 @@ nxt_go_ctx_flush(nxt_go_run_ctx_t *ctx, int last)
|
||||
&ctx->wport_msg, sizeof(nxt_port_msg_t) +
|
||||
ctx->nwbuf * sizeof(nxt_port_mmap_msg_t), NULL, 0);
|
||||
|
||||
nxt_go_debug(" port send res = %d", rc);
|
||||
|
||||
ctx->nwbuf = 0;
|
||||
|
||||
memset(&ctx->wbuf, 0, sizeof(ctx->wbuf));
|
||||
|
||||
Reference in New Issue
Block a user