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

  man pages->FreeBSD man pages -> selwakeup (9)              



NAME    [Toc]    [Back]

     selrecord, selwakeup -- record and wakeup select requests

SYNOPSIS    [Toc]    [Back]

     #include <sys/param.h>
     #include <sys/selinfo.h>

     selrecord(struct thread *td, struct selinfo *sip);

     selwakeup(struct selinfo *sip);

DESCRIPTION    [Toc]    [Back]

     selrecord() and selwakeup() are the two central functions used by
     select(2), poll(2) and the objects that are being selected on.  They handle
 the task of recording which threads are waiting on which objects and
     the waking of the proper threads when an event of interest occurs on an

     selrecord() records that the calling thread is interested in events
     related to a given object.  If another thread is already waiting on the
     object a collision will be flagged in sip which will be later dealt with
     by selwakeup().

     selrecord() acquires and releases sellock.

     selwakeup() is called by the underlying object handling code in order to
     notify any waiting threads that an event of interest has occurred.  If a
     collision has occurred, selwakeup() will increment nselcoll, and broadcast
 on the global cv in order to wake all waiting threads so that they
     can handle it.  If the thread waiting on the object is not currently
     sleeping or the wait channel is not selwait, selwakeup() will clear the
     TDF_SELECT flag which should be noted by select(2) and poll(2) when they
     wake up.

     selwakeup() acquires and releases sellock and may acquire and release

SEE ALSO    [Toc]    [Back]

     poll(2), select(2)

AUTHORS    [Toc]    [Back]

     This man page was written by Chad David <davidc@FreeBSD.org> and Alfred
     Perlstein <alfred@FreeBSD.org>.

FreeBSD 5.2.1			March 20, 2002			 FreeBSD 5.2.1
[ Back ]
 Similar pages
Name OS Title
st_fail_overruns HP-UX determines whether variable block mode read requests smaller than the physical record size will fail
sleep NetBSD process context sleep and and wakeup
wakeup NetBSD process context sleep and and wakeup
tsleep NetBSD process context sleep and and wakeup
ltsleep NetBSD process context sleep and and wakeup
wakeup OpenBSD process context sleep and wakeup
tsleep OpenBSD process context sleep and wakeup
sleep OpenBSD process context sleep and wakeup
lbolt Tru64 Global Variable: Is a periodic wakeup mechanism
vtdaemon HP-UX respond to vt requests
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service