Commit 737ebd1e authored by Aaron Jacobs's avatar Aaron Jacobs

Fixed a livelock.

parent 15bdf82b
......@@ -201,6 +201,10 @@ func (o *commonOp) respondErr(err error) {
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(
"-> (%s) error: %v",
o.op.ShortDesc(),
......@@ -208,9 +212,6 @@ func (o *commonOp) respondErr(err error) {
// Send a response to the kernel.
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
......@@ -218,6 +219,9 @@ func (o *commonOp) respondErr(err error) {
//
// Special case: nil means o.bazilReq.Respond accepts no parameters.
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.
v := reflect.ValueOf(o.bazilReq)
respond := v.MethodByName("Respond")
......@@ -232,7 +236,4 @@ func (o *commonOp) respond(resp interface{}) {
// Otherwise, send the response struct to the kernel.
o.Logf("-> %v", resp)
respond.Call([]reflect.Value{reflect.ValueOf(resp)})
// Report back to the connection that we are finished.
o.finished(nil)
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment