2014-11-08 13:14:05 -05:00
|
|
|
:mod:`select` -- wait for events on a set of streams
|
2014-10-31 18:21:37 -04:00
|
|
|
========================================================================
|
2014-10-30 21:37:19 -04:00
|
|
|
|
|
|
|
.. module:: select
|
2014-11-08 13:14:05 -05:00
|
|
|
:synopsis: wait for events on a set of streams
|
2014-10-30 21:37:19 -04:00
|
|
|
|
2014-11-08 13:14:05 -05:00
|
|
|
This module provides functions to wait for events on streams (select streams
|
|
|
|
which are ready for operations).
|
2014-10-30 21:37:19 -04:00
|
|
|
|
2014-10-31 18:21:37 -04:00
|
|
|
Pyboard specifics
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
Polling is an efficient way of waiting for read/write activity on multiple
|
|
|
|
objects. Current objects that support polling are: :class:`pyb.UART`,
|
|
|
|
:class:`pyb.USB_VCP`.
|
2014-10-30 21:37:19 -04:00
|
|
|
|
|
|
|
Functions
|
|
|
|
---------
|
|
|
|
|
|
|
|
.. function:: poll()
|
|
|
|
|
2014-10-31 18:21:37 -04:00
|
|
|
Create an instance of the Poll class.
|
2014-10-30 21:37:19 -04:00
|
|
|
|
|
|
|
.. function:: select(rlist, wlist, xlist[, timeout])
|
|
|
|
|
2014-10-31 18:21:37 -04:00
|
|
|
Wait for activity on a set of objects.
|
2014-10-30 21:37:19 -04:00
|
|
|
|
2014-11-08 13:14:05 -05:00
|
|
|
This function is provided for compatibility and is not efficient. Usage
|
|
|
|
of :class:`Poll` is recommended instead.
|
|
|
|
|
2014-10-31 18:21:37 -04:00
|
|
|
.. _class: Poll
|
2014-10-30 21:37:19 -04:00
|
|
|
|
2014-10-31 18:21:37 -04:00
|
|
|
class ``Poll``
|
|
|
|
--------------
|
2014-10-30 21:37:19 -04:00
|
|
|
|
|
|
|
Methods
|
2014-10-31 18:21:37 -04:00
|
|
|
~~~~~~~
|
2014-10-30 21:37:19 -04:00
|
|
|
|
2014-10-31 18:21:37 -04:00
|
|
|
.. method:: poll.register(obj[, eventmask])
|
2014-10-30 21:37:19 -04:00
|
|
|
|
2014-10-31 18:21:37 -04:00
|
|
|
Register ``obj`` for polling. ``eventmask`` is 1 for read, 2 for
|
|
|
|
write, 3 for read-write.
|
2014-10-30 21:37:19 -04:00
|
|
|
|
2014-10-31 18:21:37 -04:00
|
|
|
.. method:: poll.unregister(obj)
|
2014-10-30 21:37:19 -04:00
|
|
|
|
2014-10-31 18:21:37 -04:00
|
|
|
Unregister ``obj`` from polling.
|
2014-10-30 21:37:19 -04:00
|
|
|
|
2014-10-31 18:21:37 -04:00
|
|
|
.. method:: poll.modify(obj, eventmask)
|
2014-10-30 21:37:19 -04:00
|
|
|
|
2014-10-31 18:21:37 -04:00
|
|
|
Modify the ``eventmask`` for ``obj``.
|
2014-10-30 21:37:19 -04:00
|
|
|
|
2014-10-31 18:21:37 -04:00
|
|
|
.. method:: poll.poll([timeout])
|
|
|
|
|
2014-11-08 13:14:05 -05:00
|
|
|
Wait for at least one of the registered objects to become ready. Returns
|
2015-10-29 15:08:10 -04:00
|
|
|
list of (``obj``, ``event``, ...) tuples, ``event`` element specifying
|
|
|
|
whether ``obj`` is ready for reading, writing, or both (see ``register``
|
|
|
|
method above). There may be other elements in tuple, depending on platform
|
|
|
|
and version, so don't assume that its size is 2. In case of timeout, an
|
|
|
|
empty list is returned.
|
2014-10-30 21:37:19 -04:00
|
|
|
|
2014-10-31 18:21:37 -04:00
|
|
|
Timeout is in milliseconds.
|