Go: fixing racing condition on app start.
Request procesing loop should be started in ready handler to avoid race between go-routine start and context ready flag assignment. The issue introduced in 43553aa72111.
This commit is contained in:
13
go/port.go
13
go/port.go
@@ -110,11 +110,14 @@ func nxt_go_add_port(ctx *C.nxt_unit_ctx_t, p *C.nxt_unit_port_t) C.int {
|
||||
p.in_fd = -1
|
||||
p.out_fd = -1
|
||||
|
||||
if new_port.key.id == 65535 {
|
||||
go func(ctx *C.nxt_unit_ctx_t) {
|
||||
C.nxt_unit_run_shared(ctx);
|
||||
}(ctx)
|
||||
}
|
||||
return C.NXT_UNIT_OK
|
||||
}
|
||||
|
||||
//export nxt_go_ready
|
||||
func nxt_go_ready(ctx *C.nxt_unit_ctx_t) C.int {
|
||||
go func(ctx *C.nxt_unit_ctx_t) {
|
||||
C.nxt_unit_run_shared(ctx)
|
||||
}(ctx)
|
||||
|
||||
return C.NXT_UNIT_OK
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user