GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  SELDRAIN (9)

NAME

seldrain, selrecord, selwakeup - record and wakeup select requests

CONTENTS

Synopsis
Description
See Also
Authors

SYNOPSIS


.In sys/param.h
.In sys/selinfo.h void seldrain struct selinfo *sip void selrecord struct thread *td struct selinfo *sip void selwakeup struct selinfo *sip

DESCRIPTION

seldrain, selrecord and selwakeup are the three 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 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 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.

seldrain will flush the waiters queue on a specified object before its destruction. The object handling code must ensure that *sip cannot be used once seldrain has been called.

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. seldrain could usually be just a wrapper for selwakeup, but consumers should not generally rely on this feature.

SEE ALSO

poll(2), select(2)

AUTHORS


.An -nosplit This manual page was written by
.An Chad David Aq davidc@FreeBSD.org and
.An Alfred Perlstein Aq alfred@FreeBSD.org .
Search for    or go to Top of page |  Section 9 |  Main Index


Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.