You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			33 lines
		
	
	
		
			608 B
		
	
	
	
		
			C++
		
	
			
		
		
	
	
			33 lines
		
	
	
		
			608 B
		
	
	
	
		
			C++
		
	
// 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
 |