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.