summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2002-09-28 21:00:15 -0700
committerJeff Garzik <jgarzik@mandrakesoft.com>2002-09-28 21:00:15 -0700
commit5a5ec729b503205d5770f4f9543ca768db7b6a5b (patch)
tree343437615e2d2b7f2c75bb5e34e8c13a695dc4b5 /lib
parent5360ccf4ac149920c4be3fddc6ad5d2ef6779f37 (diff)
[PATCH] atomic-thread-signals
Avoid racing on signal delivery with thread signal blocking in thread groups. The method to do this is to eliminate the per-thread sigmask_lock, and use the per-group (per 'process') siglock for all signal related activities. This immensely simplified some of the locking interactions within signal.c, and enabled the fixing of the above category of signal delivery races. This became possible due to the former thread-signal patch, which made siglock an irq-safe thing. (it used to be a process-context-only spinlock.) And this is even a speedup for non-threaded applications: only one lock is used. I fixed all places within the kernel except the non-x86 arch sections. Even for them the transition is very straightforward, in almost every case the following is sufficient in arch/*/kernel/signal.c: :1,$s/->sigmask_lock/->sig->siglock/g
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions