General question about TASK_INTERRUPTIBLE and schedule_timeout()

From: sifram rajas
Date: Wed Aug 31 2011 - 08:48:26 EST


Hi,

I have a general question about the following 2 lines of code I see
all over the kernel:
1 set_current_state(TASK_INTERRUPTIBLE) ;
2 schedule_timeout(<some value>);

In the above code, if we encounter an interrupt after executing line
1, we will end up
call schedule() from the architecture specific code for CONFIG_PREEMPT
kernels, after
the interrupt handler has been invokled.

This will cause the current task to sleep interruptibly forever
instead of for a certain timeout interval.

Won't this defeat the purpose of the above code to schedule out or
sleep for a certain finite timeout ?
If yes, then what are the techniques to solve this problem ?


Thanks,
Sifram.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/