select_enqueue(9r)select_enqueue(9r)NAMEselect_enqueue - General: Adds the current kernel thread
SYNOPSIS
void select_enqueue(
sel_queue_t *selq );
ARGUMENTS
Specifies a pointer to a sel_queue structure.
DESCRIPTION
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 xxse‐
lect is called for the following reasons: To select on input and there
are no characters available When called for output and the kernel mod‐
ule'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 termi‐
nates.
CAUTIONS
You must call the queue_init routine to initialize the sel_queue struc‐
ture pointer prior to calling select_enqueue. Failure to do so causes
the kernel to panic.
RETURN VALUES
None
FILESSEE 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)