in reply to select and %SIG
I'm pretty sure because of the way signals are implemented
on most UNIX-type platforms that this should be the behavior
you would expect. Windows is another story, and I'm not
sure what to expect. POSIX support is always a bit strange
under Windows.
A probable explanation is that the 'select' function is unlike
most functions in that it involves a kernel call that puts
the process into a suspended state, as the process is not
actually "running" while the select call is waiting. This
is unlike, say, a for(;;) loop which will use
100% of CPU, though achieving the same sort of delay effect.
It would stand to reason that the kernel call is aborted
prematurely and the appropriate signal handler is called.
Any similar kernel call should also be interrupted by a
signal as well, such as the sleep function.