summaryrefslogtreecommitdiffhomepage
path: root/src/go/unit/unit.go (follow)
AgeCommit message (Collapse)AuthorFilesLines
2019-09-18Go: do not store pointer to Go object.Max Romanov1-1/+48
To pass Go object references to C and back we use hack with casting to unsafe and then to uintptr. However, we should not store such references because Go not guaratnee it will be available by the same address. Introducing map with integer key helps to avoid dereference stored address. This closes #253 and #309 issues on GitHub.
2018-08-06Unit application library.Max Romanov1-79/+44
Library now used in all language modules. Old 'nxt_app_*' code removed. See src/test/nxt_unit_app_test.c for usage sample.
2017-12-13Introducing Unit version check in Go package.Max Romanov1-19/+42
To communicate with the Go program, Unit setup environment variable named NXT_GO_PORTS with value contains Unit version, stream id to confirm application is started, and Unit ports information. Go Unit package parses this string and compares runtime version with compile time version. In case of parse error or version mismatch, ListenAndServe() returns with the error.
2017-12-06Go: removing request registry.Max Romanov1-36/+16
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.
2017-08-31nginext has been renamed to unit.Igor Sysoev1-0/+134