2000-12-13 05:24:57

by Sourav Ghosh

[permalink] [raw]
Subject: wake_up and wait_event

I have two questions:

1. Is it ok to make a "wake_up_process()" call from an interrupt

In my work, there is a kernel thread that sleeps under "sleep_on()" and
wakes up by the "wake_up_process()" by an interrupt handler.

My system is crashing and I just wanna make sure if this is not a

2. For the macros __wait_event() and __wait_event_interruptible(), it
seems to me that they can't be called from a kernel thread as they set
the task "current" as "TASK_UNINTERRUPTIBLE" due to which it gets
removed from the scheduler runqueue. So the scheduler never chooses that
task again even if the task gets set as "TASK_RUNNING" at the end of the

Is that correct? If so, how is it possible to add the task to the
runqueue again (other than defining another new macro or function) ?