:man| Alphabetical   Categories   About us 
 
SELRECORD (9) | Kernel routines | Unix Manual Pages | :man

NAME

selrecord, selwakeup - "record and wakeup select requests"

CONTENTS

Synopsis
Description
See Also
Authors

SYNOPSIS


.In sys/param.h
.In 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 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.

selwakeup acquires and releases sellock and may acquire and release sched_lock.

SEE ALSO

poll(2), select(2)

AUTHORS

 
Created by Blin Media, 2008-2013