|
select_enqueue(9r)
Contents
|
select_enqueue - General: Adds the current kernel thread
void select_enqueue(
sel_queue_t *selq );
Specifies a pointer to a sel_queue structure.
The select_enqueue routine adds the current kernel thread
to the list of kernel threads waiting for a select event
on the specified device. This routine is called when a
kernel module's select routine has been called and the
requested event cannot be immediately satisfied. For
example, the requested event cannot be immediately satisfied
when xxselect is called for the following reasons: To
select on input and there are no characters available When
called for output and the kernel module's output buffers
are currently full
By calling select_enqueue, the kernel module's select routine
ensures that the kernel thread issuing the select
call will be blocked until the requested event can be satisfied
or until the select call terminates.
You must call the queue_init routine to initialize the
sel_queue structure pointer prior to calling
select_enqueue. Failure to do so causes the kernel to
panic.
None
SEE ALSO
Routines: queue_init(9r), select_dequeue(9r),
select_dequeue_all(9r), select_wakeup(9r)
Data Structures: sel_queue(9s)
System Calls: select(2)
select_enqueue(9r)
[ Back ] |