select
This module provides functions to wait for events on streams (select streams which are ready for operations).
Pyboard specifics
Polling is an efficient way of waiting for read/write activity on multiple objects. Current objects that support polling are: pyb.UART
, pyb.USB_VCP
.
Methods
select.poll()
Create an instance of the Poll
class.
select.select(rlist, wlist, xlist[, timeout])
Wait for activity on a set of objects.
This function is provided for compatibility and is not efficient. Usage of Poll
is recommended instead.
class Poll
Methods
poll.register(obj[, eventmask])
Register obj
for polling. eventmask
is logical OR of:
select.POLLIN
- data available for readingselect.POLLOUT
- more data can be writtenselect.POLLERR
- error occurredselect.POLLHUP
- end of stream/connection termination detectedeventmask
defaults toselect.POLLIN | select.POLLOUT
.
poll.unregister(obj)
Unregister obj
from polling.
poll.modify(obj, eventmask)
Modify the eventmask
for obj
.
poll.poll([timeout])
Wait for at least one of the registered objects to become ready. Returns list of (obj
, event
, ...) tuples, event
element specifies which events happened with a stream and is a combination of select.POLL*
constants described above. There may be other elements in tuple, depending on a platform and version, so don’t assume that its size is 2. In case of timeout, an empty list is returned.
Timeout is in milliseconds.