A pair of new timeout functions
set_current_state(state);
schedule_timeout(delay);
The state parameter to set_current_state() should be either TASK_INTERRUPTIBLE or TASK_UNINTERRUPTIBLE, depending on whether the delay should be cut short on signal delivery or not. Evidently, a common error is to omit the call to set_current_state(), with the result that the request delay does not happen. As a way of making life easier, the -mm tree now includes a pair of new functions:
signed long schedule_timeout_interruptible(signed long timeout);
signed long schedule_timeout_uninterruptible(signed long timeout);
These functions take care of setting the process state, so the delay should
always happen as expected. Presumably these functions will be merged into
the mainline for 2.6.14.
