select – wait for events on a set of streams

This module provides functions to wait for events on streams (select streams which are ready for operations).

Pyboard and OpenMV Cam 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.

Functions

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 reading
  • select.POLLOUT - more data can be written
  • select.POLLERR - error occurred
  • select.POLLHUP - end of stream/connection termination detected

eventmask defaults to select.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 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.