signal_pending(current)
檢查目前程序是否有信号處理,傳回不為0表示有信号需要處理。
傳回 -ERESTARTSYS 表示信号函數處理完畢後重新執行信号函數前的某個系統調用。也就是說,如果信号函數前有發生系統調用,在排程信号處理函數之前,核心會檢查系統調用的傳回值,看看是不是因為這個信号而中斷了系統調用.
如果傳回值-ERESTARTSYS,并且目前排程的信号具備-ERESTARTSYS屬性,系統就會在使用者信号函數傳回之後再執行該系統調用。
signal_pending(current)
檢查目前程序是否有信号處理,傳回不為0表示有信号需要處理。
傳回 -ERESTARTSYS 表示信号函數處理完畢後重新執行信号函數前的某個系統調用。也就是說,如果信号函數前有發生系統調用,在排程信号處理函數之前,核心會檢查系統調用的傳回值,看看是不是因為這個信号而中斷了系統調用.
如果傳回值-ERESTARTSYS,并且目前排程的信号具備-ERESTARTSYS屬性,系統就會在使用者信号函數傳回之後再執行該系統調用。