From 040dcd1a5c9839a2ea237fee4fde5cfd1a6fb1fb Mon Sep 17 00:00:00 2001 From: Andrew Gunnerson Date: Sun, 1 Sep 2024 22:36:41 -0400 Subject: [PATCH] Return ExitCode from main std::process::exit() calls the exit syscall, which doesn't run destructors. It doesn't matter for avbroot, but better to use ExitCode anyway. Signed-off-by: Andrew Gunnerson --- avbroot/src/main.rs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/avbroot/src/main.rs b/avbroot/src/main.rs index 43c45d9..b99a7c1 100644 --- a/avbroot/src/main.rs +++ b/avbroot/src/main.rs @@ -3,16 +3,19 @@ * SPDX-License-Identifier: GPL-3.0-only */ -use std::sync::{ - atomic::{AtomicBool, Ordering}, - Arc, +use std::{ + process::ExitCode, + sync::{ + atomic::{AtomicBool, Ordering}, + Arc, + }, }; use tracing::error; static LOGGING_INITIALIZED: AtomicBool = AtomicBool::new(false); -fn main() { +fn main() -> ExitCode { // Set up a cancel signal so we can properly clean up any temporary files. let cancel_signal = Arc::new(AtomicBool::new(false)); { @@ -25,14 +28,14 @@ fn main() { } match avbroot::cli::args::main(&LOGGING_INITIALIZED, &cancel_signal) { - Ok(_) => {} + Ok(_) => ExitCode::SUCCESS, Err(e) => { if LOGGING_INITIALIZED.load(Ordering::SeqCst) { error!("{e:?}"); } else { eprintln!("{e:?}"); } - std::process::exit(1); + ExitCode::FAILURE } } }