diff options
| author | Roland McGrath <roland@redhat.com> | 2004-04-19 17:20:06 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-04-19 17:20:06 -0700 |
| commit | f3276a186a0cb1157d771768bf5e79f020e4c746 (patch) | |
| tree | 8789a1ed80aee4b622dc9abd29a2c78b26537f1a /include/linux | |
| parent | b4389817f141203a4cd10ffc7890dd9139df65e7 (diff) | |
[PATCH] fix for potential deadlock after posix-timers change
Ulrich has been working on the glibc code using posix-timers and
stressing it more now than it has before. He ran into an SMP deadlock
on process exit in the case there are pending queued signals from a
timer.
The deadlock arises because in the path through exit_itimers, the
tasklist_lock is already held (for writing). When a timer is being
deleted, sigqueue_free will try to take it (for reading) in the case
where that timer has a pending signal queued on somebody's queue. This
patch avoids the problem by making sure the queues are flushed before
calling exit_itimers, thus ensuring its code path won't try to take
tasklist_lock.
Diffstat (limited to 'include/linux')
0 files changed, 0 insertions, 0 deletions
