Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 4678
b: refs/heads/master
c: 5323125
h: refs/heads/master
v: v3
  • Loading branch information
Roland McGrath authored and Linus Torvalds committed Jul 12, 2005
1 parent b9e2af1 commit 0284433
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 5c888d531823f8ce2853fb717ebefbcca9acdcd0
refs/heads/master: 5323125031799a7fd8602ce150c3902aedfdcba6
12 changes: 12 additions & 0 deletions trunk/fs/exec.c
Original file line number Diff line number Diff line change
Expand Up @@ -642,6 +642,18 @@ static inline int de_thread(struct task_struct *tsk)
count = 2;
if (thread_group_leader(current))
count = 1;
else {
/*
* The SIGALRM timer survives the exec, but needs to point
* at us as the new group leader now. We have a race with
* a timer firing now getting the old leader, so we need to
* synchronize with any firing (by calling del_timer_sync)
* before we can safely let the old group leader die.
*/
sig->real_timer.data = (unsigned long)current;
if (del_timer_sync(&sig->real_timer))
add_timer(&sig->real_timer);
}
while (atomic_read(&sig->count) > count) {
sig->group_exit_task = current;
sig->notify_count = count;
Expand Down

0 comments on commit 0284433

Please sign in to comment.