Messages in this thread | | | Date | Wed, 31 Aug 2011 18:35:24 +0530 | Subject | Re: General question about TASK_INTERRUPTIBLE and schedule_timeout() | From | sifram rajas <> |
| |
Hi,
If this is a problem, then can this be solved by disabling preemption in the following manner ? : preempt_disable() ; set_current_state(TASK_INTERRUPTIBLE) ; schedule_timeout(<some value>); preempt_enable() ;
On Wed, Aug 31, 2011 at 6:18 PM, sifram rajas <sifram.rajas@gmail.com> wrote: > 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |