Python select.POLLERR Examples
The following are 30
code examples of select.POLLERR().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
select
, or try the search function
.
Example #1
Source File: nbsubprocess.py From distvidc with MIT License | 6 votes |
def __init__(self, *args, **kwargs): result = super(self.__class__, self).__init__(*args, **kwargs) # Setting O_NONBLOCK on stdin, strout, stderr fcntl.fcntl(self.stdin, fcntl.F_SETFL, fcntl.fcntl(self.stdin, fcntl.F_GETFL) | os.O_NONBLOCK) fcntl.fcntl(self.stdout, fcntl.F_SETFL, fcntl.fcntl(self.stdout, fcntl.F_GETFL) | os.O_NONBLOCK) fcntl.fcntl(self.stderr, fcntl.F_SETFL, fcntl.fcntl(self.stderr, fcntl.F_GETFL) | os.O_NONBLOCK) # Using poll to get file status self.poller = Poll() # My own class with len() self.poller.register(self.stdin, select.POLLOUT | select.POLLERR | select.POLLHUP) self.poller.register(self.stdout, select.POLLIN | select.POLLPRI | select.POLLERR | select.POLLHUP) self.poller.register(self.stderr, select.POLLIN | select.POLLPRI | select.POLLERR | select.POLLHUP) return result #def __del__(self, *args, **kwargs): #super(self.__class__, self).__del__() #map(self.poller.unregister, (self.stdin, self.stdout, self.stderr))
Example #2
Source File: virtio_console_guest.py From avocado-vt with GNU General Public License v2.0 | 6 votes |
def pollmask_to_str(mask): """ Conver pool mast to string :param mask: poll return mask """ out = "" if (mask & select.POLLIN): out += "IN " if (mask & select.POLLPRI): out += "PRI IN " if (mask & select.POLLOUT): out += "OUT " if (mask & select.POLLERR): out += "ERR " if (mask & select.POLLHUP): out += "HUP " if (mask & select.POLLMSG): out += "MSG " return out
Example #3
Source File: asyncore.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 6 votes |
def readwrite(obj, flags): try: if flags & select.POLLIN: obj.handle_read_event() if flags & select.POLLOUT: obj.handle_write_event() if flags & select.POLLPRI: obj.handle_expt_event() if flags & (select.POLLHUP | select.POLLERR | select.POLLNVAL): obj.handle_close() except OSError as e: if e.args[0] not in _DISCONNECTED: obj.handle_error() else: obj.handle_close() except _reraised_exceptions: raise except: obj.handle_error()
Example #4
Source File: pprocess.py From Aegean with Academic Free License v3.0 | 6 votes |
def _ensure_communication(self, timeout=None): "Ensure that sending and receiving are possible." while 1: self._ensure_pipes() fileno = self.write_pipe.fileno() fds = self.poller.poll(timeout) for fd, status in fds: if fd != fileno: continue if status & (select.POLLHUP | select.POLLNVAL | select.POLLERR): # Broken connection: discard it and start all over again. self._reset_pipes() break else: return
Example #5
Source File: pprocess.py From Aegean with Academic Free License v3.0 | 6 votes |
def _ensure_pipes(self): "Ensure that the channel is capable of communicating." if self.read_pipe is None or self.write_pipe is None: # Accept any incoming connections. endpoint, address = self.endpoint.accept() self.read_pipe = endpoint.makefile("rb", 0) self.write_pipe = endpoint.makefile("wb", 0) # Monitor the write pipe for error conditions. fileno = self.write_pipe.fileno() self.poller.register(fileno, select.POLLOUT | select.POLLHUP | select.POLLNVAL | select.POLLERR)
Example #6
Source File: asyncore.py From android_universal with MIT License | 6 votes |
def readwrite(obj, flags): try: if flags & select.POLLIN: obj.handle_read_event() if flags & select.POLLOUT: obj.handle_write_event() if flags & select.POLLPRI: obj.handle_expt_event() if flags & (select.POLLHUP | select.POLLERR | select.POLLNVAL): obj.handle_close() except OSError as e: if e.args[0] not in _DISCONNECTED: obj.handle_error() else: obj.handle_close() except _reraised_exceptions: raise except: obj.handle_error()
Example #7
Source File: poll.py From multibootusb with GNU General Public License v2.0 | 6 votes |
def _parse_events(self, events): """Parse ``events``. ``events`` is a list of events as returned by :meth:`select.poll.poll()`. Yield all parsed events. """ for fd, event_mask in events: if self._has_event(event_mask, select.POLLNVAL): raise IOError('File descriptor not open: {0!r}'.format(fd)) elif self._has_event(event_mask, select.POLLERR): raise IOError('Error while polling fd: {0!r}'.format(fd)) if self._has_event(event_mask, select.POLLIN): yield fd, 'r' if self._has_event(event_mask, select.POLLOUT): yield fd, 'w' if self._has_event(event_mask, select.POLLHUP): yield fd, 'h'
Example #8
Source File: serialposix.py From AstroBox with GNU Affero General Public License v3.0 | 6 votes |
def read(self, size=1): """Read size bytes from the serial port. If a timeout is set it may return less characters as requested. With no timeout it will block until the requested number of bytes is read.""" if self.fd is None: raise portNotOpenError read = bytearray() poll = select.poll() poll.register(self.fd, select.POLLIN|select.POLLERR|select.POLLHUP|select.POLLNVAL) if size > 0: while len(read) < size: # print "\tread(): size",size, "have", len(read) #debug # wait until device becomes ready to read (or something fails) for fd, event in poll.poll(self._timeout*1000): if event & (select.POLLERR|select.POLLHUP|select.POLLNVAL): raise SerialException('device reports error (poll)') # we don't care if it is select.POLLIN or timeout, that's # handled below buf = os.read(self.fd, size - len(read)) read.extend(buf) if ((self._timeout is not None and self._timeout >= 0) or (self._interCharTimeout is not None and self._interCharTimeout > 0)) and not buf: break # early abort on timeout return bytes(read)
Example #9
Source File: gpio.py From python-periphery with MIT License | 6 votes |
def poll(self, timeout=None): if not isinstance(timeout, (int, float, type(None))): raise TypeError("Invalid timeout type, should be integer, float, or None.") # Setup poll p = select.poll() p.register(self._line_fd, select.POLLIN | select.POLLPRI | select.POLLERR) # Scale timeout to milliseconds if isinstance(timeout, (int, float)) and timeout > 0: timeout *= 1000 # Poll events = p.poll(timeout) return len(events) > 0
Example #10
Source File: recipe-576509.py From code with MIT License | 6 votes |
def __init__(self, termfd, endpoint, obj): """ \param termfd is a file descriptor on which to select() to wait for termination requests from the main CallPipe_Callee thread \param Endpoint is an endpoint of a bidirectional multiprocessing.Pipe \param obj is the object on which to perform the method calls """ threading.Thread.__init__(self) self.__endpoint = endpoint self.__obj = obj self.__waitset = select.poll() eventmask = select.POLLIN | select.POLLERR \ | select.POLLHUP | select.POLLPRI self.__waitset.register(self.__endpoint.fileno(), eventmask) self.__waitset.register(termfd, eventmask)
Example #11
Source File: asyncore.py From ironpython3 with Apache License 2.0 | 6 votes |
def readwrite(obj, flags): try: if flags & select.POLLIN: obj.handle_read_event() if flags & select.POLLOUT: obj.handle_write_event() if flags & select.POLLPRI: obj.handle_expt_event() if flags & (select.POLLHUP | select.POLLERR | select.POLLNVAL): obj.handle_close() except OSError as e: if e.args[0] not in _DISCONNECTED: obj.handle_error() else: obj.handle_close() except _reraised_exceptions: raise except: obj.handle_error()
Example #12
Source File: serialposix.py From Jandroid with BSD 3-Clause "New" or "Revised" License | 6 votes |
def read(self, size=1): """Read size bytes from the serial port. If a timeout is set it may return less characters as requested. With no timeout it will block until the requested number of bytes is read.""" if self.fd is None: raise portNotOpenError read = bytearray() poll = select.poll() poll.register(self.fd, select.POLLIN|select.POLLERR|select.POLLHUP|select.POLLNVAL) if size > 0: while len(read) < size: # print "\tread(): size",size, "have", len(read) #debug # wait until device becomes ready to read (or something fails) for fd, event in poll.poll(self._timeout*1000): if event & (select.POLLERR|select.POLLHUP|select.POLLNVAL): raise SerialException('device reports error (poll)') # we don't care if it is select.POLLIN or timeout, that's # handled below buf = os.read(self.fd, size - len(read)) read.extend(buf) if ((self._timeout is not None and self._timeout >= 0) or (self._interCharTimeout is not None and self._interCharTimeout > 0)) and not buf: break # early abort on timeout return bytes(read)
Example #13
Source File: serialposix.py From Jandroid with BSD 3-Clause "New" or "Revised" License | 6 votes |
def read(self, size=1): """Read size bytes from the serial port. If a timeout is set it may return less characters as requested. With no timeout it will block until the requested number of bytes is read.""" if self.fd is None: raise portNotOpenError read = bytearray() poll = select.poll() poll.register(self.fd, select.POLLIN|select.POLLERR|select.POLLHUP|select.POLLNVAL) if size > 0: while len(read) < size: # print "\tread(): size",size, "have", len(read) #debug # wait until device becomes ready to read (or something fails) for fd, event in poll.poll(self._timeout*1000): if event & (select.POLLERR|select.POLLHUP|select.POLLNVAL): raise SerialException('device reports error (poll)') # we don't care if it is select.POLLIN or timeout, that's # handled below buf = os.read(self.fd, size - len(read)) read.extend(buf) if ((self._timeout is not None and self._timeout >= 0) or (self._interCharTimeout is not None and self._interCharTimeout > 0)) and not buf: break # early abort on timeout return bytes(read)
Example #14
Source File: serialposix.py From Jandroid with BSD 3-Clause "New" or "Revised" License | 6 votes |
def read(self, size=1): """Read size bytes from the serial port. If a timeout is set it may return less characters as requested. With no timeout it will block until the requested number of bytes is read.""" if self.fd is None: raise portNotOpenError read = bytearray() poll = select.poll() poll.register(self.fd, select.POLLIN|select.POLLERR|select.POLLHUP|select.POLLNVAL) if size > 0: while len(read) < size: # print "\tread(): size",size, "have", len(read) #debug # wait until device becomes ready to read (or something fails) for fd, event in poll.poll(self._timeout*1000): if event & (select.POLLERR|select.POLLHUP|select.POLLNVAL): raise SerialException('device reports error (poll)') # we don't care if it is select.POLLIN or timeout, that's # handled below buf = os.read(self.fd, size - len(read)) read.extend(buf) if ((self._timeout is not None and self._timeout >= 0) or (self._interCharTimeout is not None and self._interCharTimeout > 0)) and not buf: break # early abort on timeout return bytes(read)
Example #15
Source File: asyncore.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def readwrite(obj, flags): try: if flags & select.POLLIN: obj.handle_read_event() if flags & select.POLLOUT: obj.handle_write_event() if flags & select.POLLPRI: obj.handle_expt_event() if flags & (select.POLLHUP | select.POLLERR | select.POLLNVAL): obj.handle_close() except OSError as e: if e.args[0] not in _DISCONNECTED: obj.handle_error() else: obj.handle_close() except _reraised_exceptions: raise except: obj.handle_error()
Example #16
Source File: compat.py From NoobSec-Toolkit with GNU General Public License v2.0 | 6 votes |
def poll(self, timeout = None): events = self._poll.poll(timeout) processed = [] for fd, evt in events: mask = "" if evt & (select_module.POLLIN | select_module.POLLPRI): mask += "r" if evt & select_module.POLLOUT: mask += "w" if evt & select_module.POLLERR: mask += "e" if evt & select_module.POLLHUP: mask += "h" if evt & select_module.POLLNVAL: mask += "n" processed.append((fd, mask)) return processed
Example #17
Source File: sh.py From scylla with Apache License 2.0 | 6 votes |
def poll(self, timeout): if timeout is not None: # convert from seconds to milliseconds timeout *= 1000 changes = self._poll.poll(timeout) results = [] for fd, events in changes: f = self._get_file_object(fd) if events & (select.POLLIN | select.POLLPRI): results.append((f, POLLER_EVENT_READ)) elif events & (select.POLLOUT): results.append((f, POLLER_EVENT_WRITE)) elif events & (select.POLLHUP): results.append((f, POLLER_EVENT_HUP)) elif events & (select.POLLERR | select.POLLNVAL): results.append((f, POLLER_EVENT_ERROR)) return results
Example #18
Source File: compat.py From NoobSec-Toolkit with GNU General Public License v2.0 | 6 votes |
def poll(self, timeout = None): events = self._poll.poll(timeout) processed = [] for fd, evt in events: mask = "" if evt & (select_module.POLLIN | select_module.POLLPRI): mask += "r" if evt & select_module.POLLOUT: mask += "w" if evt & select_module.POLLERR: mask += "e" if evt & select_module.POLLHUP: mask += "h" if evt & select_module.POLLNVAL: mask += "n" processed.append((fd, mask)) return processed
Example #19
Source File: asyncore.py From Imogen with MIT License | 6 votes |
def readwrite(obj, flags): try: if flags & select.POLLIN: obj.handle_read_event() if flags & select.POLLOUT: obj.handle_write_event() if flags & select.POLLPRI: obj.handle_expt_event() if flags & (select.POLLHUP | select.POLLERR | select.POLLNVAL): obj.handle_close() except OSError as e: if e.args[0] not in _DISCONNECTED: obj.handle_error() else: obj.handle_close() except _reraised_exceptions: raise except: obj.handle_error()
Example #20
Source File: asyncore.py From Splunking-Crime with GNU Affero General Public License v3.0 | 5 votes |
def poll2(timeout=0.0, map=None): # Use the poll() support added to the select module in Python 2.0 if map is None: map = socket_map if timeout is not None: # timeout is in milliseconds timeout = int(timeout*1000) pollster = select.poll() if map: for fd, obj in map.items(): flags = 0 if obj.readable(): flags |= select.POLLIN | select.POLLPRI # accepting sockets should not be writable if obj.writable() and not obj.accepting: flags |= select.POLLOUT if flags: # Only check for exceptions if object was either readable # or writable. flags |= select.POLLERR | select.POLLHUP | select.POLLNVAL pollster.register(fd, flags) try: r = pollster.poll(timeout) except select.error, err: if err.args[0] != EINTR: raise r = [] for fd, flags in r: obj = map.get(fd) if obj is None: continue readwrite(obj, flags)
Example #21
Source File: query.py From Cloudmare with GNU General Public License v3.0 | 5 votes |
def _poll_for(fd, readable, writable, error, timeout): """Poll polling backend. @param fd: File descriptor @type fd: int @param readable: Whether to wait for readability @type readable: bool @param writable: Whether to wait for writability @type writable: bool @param timeout: Deadline timeout (expiration time, in seconds) @type timeout: float @return True on success, False on timeout """ event_mask = 0 if readable: event_mask |= select.POLLIN if writable: event_mask |= select.POLLOUT if error: event_mask |= select.POLLERR pollable = select.poll() pollable.register(fd, event_mask) if timeout: event_list = pollable.poll(long(timeout * 1000)) else: event_list = pollable.poll() return bool(event_list)
Example #22
Source File: events.py From libvirt-test-API with GNU General Public License v2.0 | 5 votes |
def events_to_poll(self, events): ret = 0 if events & libvirt.VIR_EVENT_HANDLE_READABLE: ret |= select.POLLIN if events & libvirt.VIR_EVENT_HANDLE_WRITABLE: ret |= select.POLLOUT if events & libvirt.VIR_EVENT_HANDLE_ERROR: ret |= select.POLLERR if events & libvirt.VIR_EVENT_HANDLE_HANGUP: ret |= select.POLLHUP return ret # Convert from poll() event constants, to libvirt events constants
Example #23
Source File: asyncore.py From Splunking-Crime with GNU Affero General Public License v3.0 | 5 votes |
def readwrite(obj, flags): try: if flags & select.POLLIN: obj.handle_read_event() if flags & select.POLLOUT: obj.handle_write_event() if flags & select.POLLPRI: obj.handle_expt_event() if flags & (select.POLLHUP | select.POLLERR | select.POLLNVAL): obj.handle_close() except socket.error, e: if e.args[0] not in _DISCONNECTED: obj.handle_error() else: obj.handle_close()
Example #24
Source File: poll.py From python-for-android with Apache License 2.0 | 5 votes |
def loop_iteration(self, timeout = 60): """A loop iteration - check any scheduled events and I/O available and run the handlers. """ next_timeout, sources_handled = self._call_timeout_handlers() if self._quit: return sources_handled if self._timeout is not None: timeout = min(timeout, self._timeout) if next_timeout is not None: timeout = min(next_timeout, timeout) for handler in list(self._unprepared_handlers): self._configure_io_handler(handler) events = self.poll.poll(timeout) self._timeout = None for (fileno, event) in events: if event & select.POLLHUP: self._handlers[fileno].handle_hup() if event & select.POLLNVAL: self._handlers[fileno].handle_nval() if event & select.POLLIN: self._handlers[fileno].handle_read() elif event & select.POLLERR: # if POLLIN was set this condition should be already handled self._handlers[fileno].handle_err() if event & select.POLLOUT: self._handlers[fileno].handle_write() sources_handled += 1 self._configure_io_handler(self._handlers[fileno]) return sources_handled
Example #25
Source File: asyncore.py From medicare-demo with Apache License 2.0 | 5 votes |
def readwrite(obj, flags): try: if flags & (select.POLLIN | select.POLLPRI): obj.handle_read_event() if flags & select.POLLOUT: obj.handle_write_event() if flags & (select.POLLERR | select.POLLHUP | select.POLLNVAL): obj.handle_expt_event() except ExitNow: raise except: obj.handle_error()
Example #26
Source File: query.py From elasticintel with GNU General Public License v3.0 | 5 votes |
def _poll_for(fd, readable, writable, error, timeout): """Poll polling backend. @param fd: File descriptor @type fd: int @param readable: Whether to wait for readability @type readable: bool @param writable: Whether to wait for writability @type writable: bool @param timeout: Deadline timeout (expiration time, in seconds) @type timeout: float @return True on success, False on timeout """ event_mask = 0 if readable: event_mask |= select.POLLIN if writable: event_mask |= select.POLLOUT if error: event_mask |= select.POLLERR pollable = select.poll() pollable.register(fd, event_mask) if timeout: event_list = pollable.poll(long(timeout * 1000)) else: event_list = pollable.poll() return bool(event_list)
Example #27
Source File: IOManager.py From redeem with GNU General Public License v3.0 | 5 votes |
def add_file(self, file, callback): logging.debug("IOManager adding file: %s", str(file)) def add_handler(poller, callbacks): poller.register( file, select.POLLIN | select.POLLPRI | select.POLLERR | select.POLLHUP | select.POLLNVAL) callbacks[file.fileno()] = callback logging.debug("IOManager thread added file successfully") return True self.control_queue.put(add_handler) self._wake_io_thread() self.control_queue.join()
Example #28
Source File: events.py From libvirt-test-API with GNU General Public License v2.0 | 5 votes |
def events_from_poll(self, events): ret = 0 if events & select.POLLIN: ret |= libvirt.VIR_EVENT_HANDLE_READABLE if events & select.POLLOUT: ret |= libvirt.VIR_EVENT_HANDLE_WRITABLE if events & select.POLLNVAL: ret |= libvirt.VIR_EVENT_HANDLE_ERROR if events & select.POLLERR: ret |= libvirt.VIR_EVENT_HANDLE_ERROR if events & select.POLLHUP: ret |= libvirt.VIR_EVENT_HANDLE_HANGUP return ret
Example #29
Source File: asyncore.py From meddle with MIT License | 5 votes |
def readwrite(obj, flags): try: if flags & select.POLLIN: obj.handle_read_event() if flags & select.POLLOUT: obj.handle_write_event() if flags & select.POLLPRI: obj.handle_expt_event() if flags & (select.POLLHUP | select.POLLERR | select.POLLNVAL): obj.handle_close() except socket.error, e: if e.args[0] not in _DISCONNECTED: obj.handle_error() else: obj.handle_close()
Example #30
Source File: asyncore.py From medicare-demo with Apache License 2.0 | 5 votes |
def poll2(timeout=0.0, map=None): # Use the poll() support added to the select module in Python 2.0 if map is None: map = socket_map if timeout is not None: # timeout is in milliseconds timeout = int(timeout*1000) pollster = select.poll() if map: for fd, obj in map.items(): flags = 0 if obj.readable(): flags |= select.POLLIN | select.POLLPRI if obj.writable(): flags |= select.POLLOUT if flags: # Only check for exceptions if object was either readable # or writable. flags |= select.POLLERR | select.POLLHUP | select.POLLNVAL pollster.register(fd, flags) try: r = pollster.poll(timeout) except select.error, err: if err[0] != EINTR: raise r = [] for fd, flags in r: obj = map.get(fd) if obj is None: continue readwrite(obj, flags)