selnotify man page on NetBSD

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

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

NAME
     seldestroy, selinit, selrecord, selnotify — select and poll subsystem

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

     void
     seldestroy(struct selinfo *sip);

     void
     selinit(struct selinfo *sip);

     void
     selrecord(struct lwp *selector, struct selinfo *sip);

     void
     selnotify(struct selinfo *sip, int events, long knhint);

DESCRIPTION
     selinit() and seldestroy() functions must be used to initialize and
     destroy the struct selinfo.  The seldestroy() function may block.

     selrecord() and selnotify() are used by device drivers to coordinate with
     the kernel implementation of select(2) and poll(2).  Each object that can
     be polled contains a selinfo record.  Device drivers provide locking for
     the selinfo record.

     selrecord() records that the calling thread is interested in events
     related to a given object.	 selrecord() should only be called when the
     poll routine determines that the object is not ready for I/O: there are
     no events of interest pending.  The check for pending I/O and call to
     selrecord() must be atomic.  Atomicity can be provided by holding the
     object's lock across the test and call to selrecord().  For non-MPSAFE
     drivers, the global kernel_lock is enough to provide atomicity.

     selnotify() is called by the underlying object handling code in order to
     notify any waiting threads that an event of interest has occurred.	 The
     same lock held across the poll method and call to selrecord() must be
     held across the call to selnotify().  The lock prevents an event of
     interest being signalled while a thread is in the process of recording
     its interest.

     The events indicates which event happen.  Zero may be used if unknown.

     selnotify() also calls KNOTE() passing knhint as an argument.

CODE REFERENCES
     The core of the select and poll subsystem implementation is in
     sys/kern/sys_select.c.  Data structures and function prototypes are
     located in sys/sys/select.h, sys/sys/poll.h and sys/sys/selinfo.h.

SEE ALSO
     poll(2), select(2), knote(9)

BSD				 May 13, 2008				   BSD
[top]
                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server NetBSD

List of man pages available for NetBSD

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