diff --git a/router/router_server.go b/router/router_server.go index 39a1fbc..9812df7 100644 --- a/router/router_server.go +++ b/router/router_server.go @@ -227,20 +227,19 @@ func deleteServer(c *gin.Context) { // // In addition, servers with large amounts of files can take some time to finish deleting, // so we don't want to block the HTTP call while waiting on this. - go func(p string) { - _ = s.Filesystem().UnixFS().Close() + go func(s *server.Server) { + fs := s.Filesystem() + p := fs.Path() + _ = fs.UnixFS().Close() if err := os.RemoveAll(p); err != nil { log.WithFields(log.Fields{"path": p, "error": err}).Warn("failed to remove server files during deletion process") } - }(s.Filesystem().Path()) + }(s) middleware.ExtractManager(c).Remove(func(server *server.Server) bool { return server.ID() == s.ID() }) - // Deallocate the reference to this server. - s = nil - c.Status(http.StatusNoContent) }