1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
// SPDX-License-Identifier: GPL-2.0-or-later
// Copyright The Music Player Daemon Project
#include "ShutdownHandler.hxx"
#ifndef _WIN32
#include "event/SignalMonitor.hxx"
#include "event/Loop.hxx"
#include <signal.h>
static void
HandleShutdownSignal(void *ctx) noexcept
{
auto &loop = *(EventLoop *)ctx;
loop.Break();
}
ShutdownHandler::ShutdownHandler(EventLoop &loop)
{
SignalMonitorInit(loop);
SignalMonitorRegister(SIGINT, {&loop, HandleShutdownSignal});
SignalMonitorRegister(SIGTERM, {&loop, HandleShutdownSignal});
}
ShutdownHandler::~ShutdownHandler()
{
SignalMonitorFinish();
}
#endif
|