pub struct SignalImpl { /* private fields */ }Expand description
管理一个进程中的信号
Implementations§
Source§impl SignalImpl
impl SignalImpl
Trait Implementations§
Source§impl Default for SignalImpl
impl Default for SignalImpl
Source§impl Signal for SignalImpl
impl Signal for SignalImpl
Source§fn add_signal(&mut self, signal: SignalNo)
fn add_signal(&mut self, signal: SignalNo)
添加一个信号
Source§fn is_handling_signal(&self) -> bool
fn is_handling_signal(&self) -> bool
是否当前正在处理信号
Source§fn set_action(&mut self, signum: SignalNo, action: &SignalAction) -> bool
fn set_action(&mut self, signum: SignalNo, action: &SignalAction) -> bool
设置一个信号处理函数。sys_sigaction 会使用
Source§fn get_action_ref(&self, signum: SignalNo) -> Option<SignalAction>
fn get_action_ref(&self, signum: SignalNo) -> Option<SignalAction>
获取一个信号处理函数的值。sys_sigaction 会使用
Source§fn update_mask(&mut self, mask: usize) -> usize
fn update_mask(&mut self, mask: usize) -> usize
设置信号掩码,并获取旧的信号掩码,sys_procmask 会使用
Source§fn from_fork(&mut self) -> Box<dyn Signal>
fn from_fork(&mut self) -> Box<dyn Signal>
当 fork 一个任务时(在通常的
linux syscall中,fork是某种参数形式的sys_clone),
需要继承原任务的信号处理函数和掩码。
此时 task 模块会调用此函数,根据原任务的信号模块生成新任务的信号模块Source§fn handle_signals(&mut self, current_context: &mut LocalContext) -> SignalResult
fn handle_signals(&mut self, current_context: &mut LocalContext) -> SignalResult
进程执行结果,可能是直接返回用户程序或存栈或暂停或退出 Read more
Source§fn sig_return(&mut self, current_context: &mut LocalContext) -> bool
fn sig_return(&mut self, current_context: &mut LocalContext) -> bool
从信号处理函数中退出,返回值表示是否成功。
sys_sigreturn 会使用Auto Trait Implementations§
impl Freeze for SignalImpl
impl RefUnwindSafe for SignalImpl
impl Send for SignalImpl
impl Sync for SignalImpl
impl Unpin for SignalImpl
impl UnsafeUnpin for SignalImpl
impl UnwindSafe for SignalImpl
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more