Defer finalizer (#7129)

Signed-off-by: Julien Pivotto <roidelapluie@inuits.eu>
This commit is contained in:
Julien Pivotto 2020-04-16 20:16:16 +02:00 committed by GitHub
parent 1d6532e9e5
commit 209d4bb8a1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -250,6 +250,9 @@ func (api *API) Register(r *route.Router) {
hf := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
httputil.SetCORS(w, api.CORSOrigin, r)
result := f(r)
if result.finalizer != nil {
defer result.finalizer()
}
if result.err != nil {
api.respondError(w, result.err, result.data)
} else if result.data != nil {
@ -257,9 +260,6 @@ func (api *API) Register(r *route.Router) {
} else {
w.WriteHeader(http.StatusNoContent)
}
if result.finalizer != nil {
result.finalizer()
}
})
return api.ready(httputil.CompressionHandler{
Handler: hf,