process.c (8990c1bc4be46473ad19bf2fa612ca57286f3df4) | process.c (8cfe400ca54fd1ed96f962bea5f7e20b09b6d69f) |
---|---|
1/* 2 * drivers/power/process.c - Functions for starting/stopping processes on 3 * suspend transitions. 4 * 5 * Originally from swsusp. 6 */ 7 8 --- 50 unchanged lines hidden (view full) --- 59 if (!freeze_task(p, sig_only)) 60 continue; 61 62 /* 63 * Now that we've done set_freeze_flag, don't 64 * perturb a task in TASK_STOPPED or TASK_TRACED. 65 * It is "frozen enough". If the task does wake 66 * up, it will immediately call try_to_freeze. | 1/* 2 * drivers/power/process.c - Functions for starting/stopping processes on 3 * suspend transitions. 4 * 5 * Originally from swsusp. 6 */ 7 8 --- 50 unchanged lines hidden (view full) --- 59 if (!freeze_task(p, sig_only)) 60 continue; 61 62 /* 63 * Now that we've done set_freeze_flag, don't 64 * perturb a task in TASK_STOPPED or TASK_TRACED. 65 * It is "frozen enough". If the task does wake 66 * up, it will immediately call try_to_freeze. |
67 * 68 * Because freeze_task() goes through p's 69 * scheduler lock after setting TIF_FREEZE, it's 70 * guaranteed that either we see TASK_RUNNING or 71 * try_to_stop() after schedule() in ptrace/signal 72 * stop sees TIF_FREEZE. |
|
67 */ 68 if (!task_is_stopped_or_traced(p) && 69 !freezer_should_skip(p)) 70 todo++; 71 } while_each_thread(g, p); 72 read_unlock(&tasklist_lock); 73 74 if (!sig_only) { --- 115 unchanged lines hidden --- | 73 */ 74 if (!task_is_stopped_or_traced(p) && 75 !freezer_should_skip(p)) 76 todo++; 77 } while_each_thread(g, p); 78 read_unlock(&tasklist_lock); 79 80 if (!sig_only) { --- 115 unchanged lines hidden --- |