* Kay Tiong Khoo | 2006-10-17 18:18:25 [+0800]:
On a timer interrupt, I tried to stop the current process by changing
it's run state to TASK_STOPPED via set_current_state(TASK_STOPPED).
However, this results in a system hang.
I can't find a way to stop the current process during an interrupt
context. Does such code exist in the kernel? If not, how does one go
about implementing it from within a kernel module.
Take a look at some driver implementations!
There you will find some ways how to put a process into a sleep state.
Grep for "*->state*TASK_UNINTERRUPTIBLE" and take also a look at the
interaction with schedule() and spinlocks.
Thanks.
Kay Tiong
Best regards
--
Hagen Pfeifer