*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> wakeup (9r)              



NAME    [Toc]    [Back]

       wakeup  -  General:  Wakes  up all processes sleeping on a
       specified address

SYNOPSIS    [Toc]    [Back]

       void wakeup(
               caddr_t channel );

ARGUMENTS    [Toc]    [Back]

       Specifies the address on which the wakeup is to be issued.

DESCRIPTION    [Toc]    [Back]

       The  wakeup routine wakes up all processes sleeping on the
       address specified by the channel argument.  All  processes
       sleeping on this address are awakened and made ready to be
       scheduled according to the priorities they specified  when
       they  went to sleep. It is possible that there are no processes
 sleeping on the channel at the time the  wakeup  is
       issued.  This situation can occur for a variety of reasons
       and does not represent an error condition.

       The sleep and wakeup routines block and unblock a process.
       Generally, a device driver issues these routines on behalf
       of a  process  requesting  I/O  while  a  transfer  is  in
       progress.  That  is,  a  process  requesting I/O is put to
       sleep on an address associated with  the  request  by  the
       appropriate  device  driver routine. When the transfer has
       asynchronously completed, the device driver interrupt service
  routine  issues  a  wakeup on the address associated
       with the completed request. This action makes the relevant
       process to be scheduled.

       The  process  resumes execution within the relevant device
       driver routine at  the  point  immediately  following  the
       request  to  sleep.  The driver, on behalf of the process,
       can then determine whether the condition for which it  was
       sleeping  (in  this example, completion of an I/O request)
       has been removed.  If so, it can continue on  to  complete
       the I/O request. Otherwise, the appropriate driver routine
       can decide to put the  process  back  to  sleep  to  await
       removal of the indicated condition.

RETURN VALUES    [Toc]    [Back]


SEE ALSO    [Toc]    [Back]

       Routines: mpsleep(9r), sleep(9r)

[ Back ]
 Similar pages
Name OS Title
unsleep FreeBSD manage the queues of sleeping processes
sleepinit FreeBSD manage the queues of sleeping processes
endtsleep FreeBSD manage the queues of sleeping processes
sleepqueue FreeBSD manage the queues of sleeping processes
select_wakeup Tru64 General: Wakes up a kernel thread
thread_wakeup_one Tru64 General: Wakes up the first kernel thread waiting on a channel
thread_wakeup Tru64 General: Wakes up all kernel threads waiting for the specified event
KSEG_TO_PHYS Tru64 General: Converts a kernel-unmapped virtual address to a physical address
copy_to_phys Tru64 General: Copies data from a virtual address to a physical address
svatophys Tru64 General: Converts a system virtual address to a physical address
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service