Skip to contentSkip to conversation

Why does a thread not sleep ?

DISCUSSION Jos Hulzink 1 participant 1 message Jan 16, 2003

lore
Share & tools
lore
#0 lore raw

Hello,

In a driver, in the bottom half of an interrupt handler, I use set_task_state (task, TASK_INTERRUPTIBLE) to make a task sleeping. Sometimes (about 50 % of the cases), the task wakes up immediately again, even though no signals are sent to the task. I tried TASK_UNINTERRUPTIBLE and TASK_STOPPED too, but the same thing happens.

Can it be the task state is returned to TASK_RUNNING again in some situations by other code ? Should I use locking, even on uniprocessor systems ? Can a modification of the task state get lost in some situations ? I know about SMP related issues, but this doesn't even work on UP kernels.

In other words: I don't get it. Help would be appreciated.

Thanks,

Jos