Fixed a livelock.
parent
15bdf82b56
commit
737ebd1e1f
|
@ -201,6 +201,10 @@ func (o *commonOp) respondErr(err error) {
|
||||||
panic("Expect non-nil here.")
|
panic("Expect non-nil here.")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Don't forget to report back to the connection that we are finished.
|
||||||
|
defer o.finished(err)
|
||||||
|
|
||||||
|
// Log that we are finished.
|
||||||
o.Logf(
|
o.Logf(
|
||||||
"-> (%s) error: %v",
|
"-> (%s) error: %v",
|
||||||
o.op.ShortDesc(),
|
o.op.ShortDesc(),
|
||||||
|
@ -208,9 +212,6 @@ func (o *commonOp) respondErr(err error) {
|
||||||
|
|
||||||
// Send a response to the kernel.
|
// Send a response to the kernel.
|
||||||
o.bazilReq.RespondError(err)
|
o.bazilReq.RespondError(err)
|
||||||
|
|
||||||
// Report back to the connection that we are finished.
|
|
||||||
o.finished(err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Respond with the supplied response struct, which must be accepted by a
|
// Respond with the supplied response struct, which must be accepted by a
|
||||||
|
@ -218,6 +219,9 @@ func (o *commonOp) respondErr(err error) {
|
||||||
//
|
//
|
||||||
// Special case: nil means o.bazilReq.Respond accepts no parameters.
|
// Special case: nil means o.bazilReq.Respond accepts no parameters.
|
||||||
func (o *commonOp) respond(resp interface{}) {
|
func (o *commonOp) respond(resp interface{}) {
|
||||||
|
// Don't forget to report back to the connection that we are finished.
|
||||||
|
defer o.finished(nil)
|
||||||
|
|
||||||
// Find the Respond method.
|
// Find the Respond method.
|
||||||
v := reflect.ValueOf(o.bazilReq)
|
v := reflect.ValueOf(o.bazilReq)
|
||||||
respond := v.MethodByName("Respond")
|
respond := v.MethodByName("Respond")
|
||||||
|
@ -232,7 +236,4 @@ func (o *commonOp) respond(resp interface{}) {
|
||||||
// Otherwise, send the response struct to the kernel.
|
// Otherwise, send the response struct to the kernel.
|
||||||
o.Logf("-> %v", resp)
|
o.Logf("-> %v", resp)
|
||||||
respond.Call([]reflect.Value{reflect.ValueOf(resp)})
|
respond.Call([]reflect.Value{reflect.ValueOf(resp)})
|
||||||
|
|
||||||
// Report back to the connection that we are finished.
|
|
||||||
o.finished(nil)
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue