Applications are expected to defer application shutdown after initialization:
let app = try Application(.detect())
defer { app.shutdown() }
This prevents scenarios where an error is thrown before the app.shutdown()
defer block is called which results in an "Application did not shutdown" assertion.
Because of this, Application.run()
will no longer attempt to call shutdown()
which would result in a double shutdown.