Source-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: src/lib/libpthread
Module Name: src
Committed By: nathanw
Date: Sat Jan 25 00:43:39 UTC 2003
Modified Files:
src/lib/libpthread: pthread_int.h pthread_sa.c pthread_sig.c
Log Message:
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.
To generate a diff of this commit:
cvs rdiff -r1.3 -r1.4 src/lib/libpthread/pthread_int.h \
src/lib/libpthread/pthread_sa.c
cvs rdiff -r1.4 -r1.5 src/lib/libpthread/pthread_sig.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Home |
Main Index |
Thread Index |
Old Index