summaryrefslogtreecommitdiffhomepage
path: root/src/go/unit/response.go
diff options
context:
space:
mode:
authorMax Romanov <max.romanov@nginx.com>2017-12-06 12:16:02 +0300
committerMax Romanov <max.romanov@nginx.com>2017-12-06 12:16:02 +0300
commitd14c0774c7e6f372dfebcfcafdcac718b7e28789 (patch)
tree6111a740fb2d1898b0375a8f65235d3f319b160a /src/go/unit/response.go
parent0db4d2531648796a3447a409f05bd82bcc91ff9f (diff)
downloadunit-d14c0774c7e6f372dfebcfcafdcac718b7e28789.tar.gz
unit-d14c0774c7e6f372dfebcfcafdcac718b7e28789.tar.bz2
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.
Diffstat (limited to '')
-rw-r--r--src/go/unit/response.go6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/go/unit/response.go b/src/go/unit/response.go
index 18daa2f3..258a82c9 100644
--- a/src/go/unit/response.go
+++ b/src/go/unit/response.go
@@ -13,7 +13,6 @@ import "C"
import (
"fmt"
"net/http"
- "os"
)
type response struct {
@@ -43,16 +42,15 @@ func (r *response) Write(p []byte) (n int, err error) {
}
l := C.size_t(len(p))
- b := getCBytes(p)
+ b := buf_ref(p)
res := C.nxt_go_response_write(r.c_req, b, l)
- C.free(b)
return int(res), nil
}
func (r *response) WriteHeader(code int) {
if r.headerSent {
// Note: explicitly using Stderr, as Stdout is our HTTP output.
- fmt.Fprintf(os.Stderr, "CGI attempted to write header twice")
+ nxt_go_warn("multiple response.WriteHeader calls")
return
}
r.headerSent = true