From 75a3d80fdbaf81335c14a4796ff4a5b882dbc026 Mon Sep 17 00:00:00 2001 From: Akshit Gaur Date: Tue, 10 Feb 2026 19:14:36 +0530 Subject: [PATCH] Implement pause --- src/header/unistd/mod.rs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/header/unistd/mod.rs b/src/header/unistd/mod.rs index c2e03718e1..6facf6a046 100644 --- a/src/header/unistd/mod.rs +++ b/src/header/unistd/mod.rs @@ -48,6 +48,8 @@ use super::{ stdio::snprintf, }; +use crate::header::signal::{sigprocmask, sigset_t, sigsuspend}; + mod brk; mod getopt; mod getpass; @@ -795,9 +797,12 @@ pub extern "C" fn nice(incr: c_int) -> c_int { } /// See . -// #[unsafe(no_mangle)] -pub extern "C" fn pause() -> c_int { - unimplemented!(); +#[unsafe(no_mangle)] +pub unsafe extern "C" fn pause() -> c_int { + let mut pset = mem::MaybeUninit::::uninit(); + unsafe { sigprocmask(0, ptr::null_mut(), pset.as_mut_ptr()) }; + let set = unsafe { pset.assume_init() }; + unsafe { sigsuspend(&set) } } /// See .