-
-
Notifications
You must be signed in to change notification settings - Fork 85
Monitors
Tony Arcieri edited this page Dec 29, 2016
·
9 revisions
The NIO::Monitor
class monitors a specific IO object and lets you introspect on why that object was selected. Monitors are returned by Selectors whenever you #register
an IO
object or whenever they #select
as ready for a particular interests.
NIO::Monitors
are thread safe only if you are holding the selector lock (i.e. if you're in a block passed to #select
). Don't share them between multiple threads unless only one thread at a time is calling #select
.
The following methods are available for manipulating and inspecting interests:
-
#interests
: what this monitor is interested in (:r
,:w
, or:rw
) -
#interests=
: change the current interests for a monitor (to:r
,:w
, or:rw
) -
#add_interest
: add an interest to the current interest set -
#remove_interest
: remove an interest from the current interest set -
#readiness
: what I/O operations the monitored object is ready for -
#readable?
: was the IO readable last time it was selected? -
#writable?
: was the IO writable last time it was selected?
Monitors also support a #value
and #value=
accessor for storing a handle to an arbitrary object of your choice (e.g. a proc with a callback to fire on a given event)