add global var to indicate server shutdown requests
This commit is contained in:
		
							
								
								
									
										12
									
								
								src/tools.rs
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								src/tools.rs
									
									
									
									
									
								
							@ -545,3 +545,15 @@ pub fn fd_change_cloexec(fd: RawFd, on: bool) -> Result<(), Error> {
 | 
			
		||||
    fcntl(fd, F_SETFD(flags))?;
 | 
			
		||||
    Ok(())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static mut SHUTDOWN_REQUESTED: bool = false;
 | 
			
		||||
 | 
			
		||||
pub fn request_shutdown() {
 | 
			
		||||
    unsafe { SHUTDOWN_REQUESTED = true; }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[inline(always)]
 | 
			
		||||
pub fn shutdown_requested() -> bool {
 | 
			
		||||
    unsafe { SHUTDOWN_REQUESTED }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -200,7 +200,10 @@ where
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    Ok(service.select(signal_handler)
 | 
			
		||||
        .map(|_| log::info!("daemon shutting down..."))
 | 
			
		||||
        .map_err(|_| ())
 | 
			
		||||
       .map(|_| {
 | 
			
		||||
           log::info!("daemon shutting down...");
 | 
			
		||||
           crate::tools::request_shutdown();
 | 
			
		||||
       })
 | 
			
		||||
       .map_err(|_| ())
 | 
			
		||||
    )
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user