AppShutdownStrategy

izumi.distage.roles.launcher.AppShutdownStrategy
See theAppShutdownStrategy companion object

There are two possible graceful termination paths for an application:

  1. User explicitly calls AppShutdownStrategy#releaseAwaitLatch

  2. The application received SIGINT and the shutdown hook triggers.

    It's important to remember that all other threads will continue to run until the shutdown hook finishes, after that they'll stop abruptly without even receiving any exceptions.

    Izumi runtime will call AppShutdownStrategy#finishShutdown when all the cleanups are done.

Possible code paths:

  1. AppShutdownStrategy#awaitShutdown -> AppShutdownStrategy#releaseAwaitLatch -> AppShutdownStrategy#finishShutdown
  2. AppShutdownStrategy#awaitShutdown -> AppShutdownStrategy#finishShutdown

Attributes

See also:
Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Members list

Concise view

Value members

Abstract methods

def awaitShutdown(logger: IzLogger): F[Unit]
def releaseAwaitLatch(): Unit