From 50f1e9a5fafa4863998ece8a7e354cbe10aa8240 Mon Sep 17 00:00:00 2001 From: Niyaz Nigmatullin Date: Wed, 10 Aug 2022 12:15:27 +0300 Subject: [PATCH] sort: fix test_tmp_files_deleted_on_sigint, wait for signal handling at the end of the program --- src/uu/sort/src/sort.rs | 4 +++- src/uu/sort/src/tmp_dir.rs | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/uu/sort/src/sort.rs b/src/uu/sort/src/sort.rs index 86347a28a..c72350228 100644 --- a/src/uu/sort/src/sort.rs +++ b/src/uu/sort/src/sort.rs @@ -1267,7 +1267,9 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { settings.init_precomputed(); - exec(&mut files, &settings, output, &mut tmp_dir) + let result = exec(&mut files, &settings, output, &mut tmp_dir); + tmp_dir.wait_if_signal(); + result } pub fn uu_app<'a>() -> Command<'a> { diff --git a/src/uu/sort/src/tmp_dir.rs b/src/uu/sort/src/tmp_dir.rs index 32ffbbf0d..f96d2620a 100644 --- a/src/uu/sort/src/tmp_dir.rs +++ b/src/uu/sort/src/tmp_dir.rs @@ -69,6 +69,10 @@ impl TmpDirWrapper { path, )) } + + pub fn wait_if_signal(&self) { + let _ = self.lock.lock().unwrap(); + } } /// Remove the directory at `path` by deleting its child files and then itself.