More syscall messaging commits, and some testing code as well.
Matthew Dillon
dillon at apollo.backplane.com
Wed Aug 13 19:06:58 PDT 2003
The interruptability of a normal system call basically translates to the
ability to abort a messaging system call.
Normally a messaging system call will not be aborted by a signal,
after all you might have hundreds of messaging system calls in progress
and you obviously don't want them all to abort every time you take a
signal. But there will be cases where a program *will* want to abort
a system call after taking a signal. For example, a program might want
to abort a sleep() that is in progress when it gets SIGINT. The
difference between the traditional syscall mechanism and our new
messaging mechanism is that in the traditional mechanism the kernel
has no choice but to abort the system call in order to be able to
trampoline the signal in user land, and in the messaging mechanism
the kernel can wash its hands of the whole affair and leave it up to
the user program to decide whether to abort any of the in-progress
syscalls.
-Matt
More information about the Kernel
mailing list