#pragma once

#include "misc/atomic_box.h"

#include <util/system/event.h>

enum EShutdownState {
    SS_RUNNING,
    SS_SHUTDOWN_COMMAND,
    SS_SHUTDOWN_COMPLETE,
};

struct TAtomicShutdownState {
    TAtomicBox<EShutdownState> State;
    TSystemEvent ShutdownComplete;

    void ShutdownCommand();
    void CompleteShutdown();
    bool IsRunning();

    ~TAtomicShutdownState();
};