Linux????е???????????????
???????????? ???????[ 2013/2/16 10:27:07 ] ????????
????????????????????????????????????????????????????signal_wake_up()????????????signal_wake_up()(kernel/signal.c)????????£?
/*
* Tell a process that it has a new active signal..
*
* NOTE! we rely on the previous spin_lock to
* lock interrupts for us! We can only be called with
* "siglock" held?? and the local interrupt must
* have been disabled when that got acquired!
*
* No need to set need_resched since signal event passing
* goes through ->blocked
*/
void signal_wake_up(struct task_struct *t?? int resume)
{
unsigned int mask;
set_tsk_thread_flag(t?? TIF_SIGPENDING);//?????????TIF_SIGPENDING???
/*
* For SIGKILL?? we want to wake it up in the stopped/traced case.
* We don't check t->state here because there is a race with it
* executing another processor and just now entering stopped state.
* By using wake_up_state?? we ensure the process will wake up and
* handle its death signal.
*/
mask = TASK_INTERRUPTIBLE;
if (resume)
mask |= TASK_STOPPED | TASK_TRACED;
if (!wake_up_state(t?? mask))
kick_process(t);
}
????signal_wake_up()?????????????TIF_SIGPENDING?????????y?????????????????????????????wake_up_state()????????????????????????????CPU?????У?wake_up_state()??????0?????????kick_process()???CPU????????????????ж?????ж?????????????????????????????
????????y?????????????????????????????????do_notify_resume()????y????????
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11