diff options
| author | nathanw <nathanw@NetBSD.org> | 2003-01-25 00:43:38 +0000 |
|---|---|---|
| committer | nathanw <nathanw@NetBSD.org> | 2003-01-25 00:43:38 +0000 |
| commit | fe8e8dad4a892f0dcca519bce3419e4ca080593f (patch) | |
| tree | 038e715c26cbb1e86b4c8645cf52fa05134b96ec /gnu/usr.bin/diffutils | |
| parent | 564fe117cc7d093237e1c99301fd5fc1ead165c7 (diff) | |
More signal rearranging:
- Signal handlers now simply continue executing the current thread,
rather than trying to put themselves back on the queue that they came
from, which was rather fragile. As a result, all callers of
pthread__block() must be prepared to handle spurious wakeups.
- When a signal arrives for a thread that is blocked in the kernel,
note this in another field in pthread_st and set a flag. Process the
signal and set up the trampoline for the handler *after* the thread
unblocks, so that both the trampoline and the returned state from
the kernel are preserved.
- Factor out some code into a pthread__deliver_signal() routine;
the signal-taking code in pthread_sigmask() should be able to use this
soon.
This is still gross, and there are still some terrible MP issues lurking here,
but progress crawls along.
Diffstat (limited to 'gnu/usr.bin/diffutils')
0 files changed, 0 insertions, 0 deletions
