Fixing racing condition in request.msgs usage.
This commit is contained in:
@@ -206,6 +206,14 @@ func (p *port) read(handler http.Handler) error {
|
|||||||
|
|
||||||
r := find_request(c_req)
|
r := find_request(c_req)
|
||||||
|
|
||||||
|
if len(r.msgs) == 0 {
|
||||||
|
r.push(m)
|
||||||
|
} else if r.ch != nil {
|
||||||
|
r.ch <- m
|
||||||
|
} else {
|
||||||
|
m.Close()
|
||||||
|
}
|
||||||
|
|
||||||
go func(r *request) {
|
go func(r *request) {
|
||||||
if handler == nil {
|
if handler == nil {
|
||||||
handler = http.DefaultServeMux
|
handler = http.DefaultServeMux
|
||||||
@@ -215,13 +223,5 @@ func (p *port) read(handler http.Handler) error {
|
|||||||
r.done()
|
r.done()
|
||||||
}(r)
|
}(r)
|
||||||
|
|
||||||
if len(r.msgs) == 0 {
|
|
||||||
r.push(m)
|
|
||||||
} else if r.ch != nil {
|
|
||||||
r.ch <- m
|
|
||||||
} else {
|
|
||||||
m.Close()
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user