selwakeup man page on FreeBSD

Man page or keyword search:  
man Server   9747 pages
apropos Keyword Search (all sections)
Output format
FreeBSD logo
[printable version]

SELRECORD(9)		 BSD Kernel Developer's Manual		  SELRECORD(9)

NAME
     selrecord, selwakeup — record and wakeup select requests

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

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

     void
     selwakeup(struct selinfo *sip);

DESCRIPTION
     selrecord() and selwakeup() are the two central functions used by
     select(2), poll(2) and the objects that are being selected on.  They han‐
     dle 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
     object.

     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 broad‐
     cast 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.

     The contents of *sip must be zeroed, such as by softc initialization,
     before any call to selrecord() or selwakeup(), otherwise a panic may
     occur.  selwakeup() acquires and releases sellock and may acquire and
     release sched_lock.

SEE ALSO
     poll(2), select(2)

AUTHORS
     This manual page was written by Chad David ⟨davidc@FreeBSD.org⟩ and
     Alfred Perlstein ⟨alfred@FreeBSD.org⟩.

BSD				 June 13, 2007				   BSD
[top]

List of man pages available for FreeBSD

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
...................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net