123456789101112131415161718192021222324252627282930313233343536 |
- // Copyright 2019 The Gitea Authors. All rights reserved.
- // SPDX-License-Identifier: MIT
-
- package graceful
-
- import (
- "context"
- )
-
- // Shutdown procedure:
- // * cancel ShutdownContext: the registered context consumers have time to do their cleanup (they could use the hammer context)
- // * cancel HammerContext: the all context consumers have limited time to do their cleanup (wait for a few seconds)
- // * cancel TerminateContext: the registered context consumers have time to do their cleanup (but they shouldn't use shutdown/hammer context anymore)
- // * cancel manager context
- // If the shutdown is triggered again during the shutdown procedure, the hammer context will be canceled immediately to force to shut down.
-
- // ShutdownContext returns a context.Context that is Done at shutdown
- // Callers using this context should ensure that they are registered as a running server
- // in order that they are waited for.
- func (g *Manager) ShutdownContext() context.Context {
- return g.shutdownCtx
- }
-
- // HammerContext returns a context.Context that is Done at hammer
- // Callers using this context should ensure that they are registered as a running server
- // in order that they are waited for.
- func (g *Manager) HammerContext() context.Context {
- return g.hammerCtx
- }
-
- // TerminateContext returns a context.Context that is Done at terminate
- // Callers using this context should ensure that they are registered as a terminating server
- // in order that they are waited for.
- func (g *Manager) TerminateContext() context.Context {
- return g.terminateCtx
- }
|