Python select.POLLHUP Examples
The following are 30
code examples of select.POLLHUP().
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: 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 #2
Source File: test_poll.py From ironpython2 with Apache License 2.0 | 6 votes |
def test_poll2(self): cmd = 'for i in 0 1 2 3 4 5 6 7 8 9; do echo testing...; sleep 1; done' p = os.popen(cmd, 'r') pollster = select.poll() pollster.register( p, select.POLLIN ) for tout in (0, 1000, 2000, 4000, 8000, 16000) + (-1,)*10: fdlist = pollster.poll(tout) if (fdlist == []): continue fd, flags = fdlist[0] if flags & select.POLLHUP: line = p.readline() if line != "": self.fail('error: pipe seems to be closed, but still returns data') continue elif flags & select.POLLIN: line = p.readline() if not line: break continue else: self.fail('Unexpected return value from select.poll: %s' % fdlist) p.close()
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: virtio_console_guest.py From avocado-vt with GNU General Public License v2.0 | 6 votes |
def worker(virt): """ Worker thread (infinite) loop of virtio_guest. """ global exiting print("PASS: Daemon start.") p = select.poll() p.register(sys.stdin.fileno()) while not exiting: d = p.poll() if (d[0][1] == select.POLLIN): out = input() try: exec(out) except Exception: exc_type, exc_value, exc_traceback = sys.exc_info() print("On Guest exception from: \n" + "".join( traceback.format_exception(exc_type, exc_value, exc_traceback))) print("FAIL: Guest command exception.") elif (d[0][1] & select.POLLHUP): time.sleep(0.5)
Example #5
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 #6
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 #7
Source File: test_poll.py From BinderFilter with MIT License | 6 votes |
def test_poll2(self): cmd = 'for i in 0 1 2 3 4 5 6 7 8 9; do echo testing...; sleep 1; done' p = os.popen(cmd, 'r') pollster = select.poll() pollster.register( p, select.POLLIN ) for tout in (0, 1000, 2000, 4000, 8000, 16000) + (-1,)*10: fdlist = pollster.poll(tout) if (fdlist == []): continue fd, flags = fdlist[0] if flags & select.POLLHUP: line = p.readline() if line != "": self.fail('error: pipe seems to be closed, but still returns data') continue elif flags & select.POLLIN: line = p.readline() if not line: break continue else: self.fail('Unexpected return value from select.poll: %s' % fdlist) p.close()
Example #8
Source File: test_poll.py From oss-ftp with MIT License | 6 votes |
def test_poll2(self): cmd = 'for i in 0 1 2 3 4 5 6 7 8 9; do echo testing...; sleep 1; done' p = os.popen(cmd, 'r') pollster = select.poll() pollster.register( p, select.POLLIN ) for tout in (0, 1000, 2000, 4000, 8000, 16000) + (-1,)*10: fdlist = pollster.poll(tout) if (fdlist == []): continue fd, flags = fdlist[0] if flags & select.POLLHUP: line = p.readline() if line != "": self.fail('error: pipe seems to be closed, but still returns data') continue elif flags & select.POLLIN: line = p.readline() if not line: break continue else: self.fail('Unexpected return value from select.poll: %s' % fdlist) p.close()
Example #9
Source File: test_poll.py From gcblue with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_poll2(self): cmd = 'for i in 0 1 2 3 4 5 6 7 8 9; do echo testing...; sleep 1; done' p = os.popen(cmd, 'r') pollster = select.poll() pollster.register( p, select.POLLIN ) for tout in (0, 1000, 2000, 4000, 8000, 16000) + (-1,)*10: fdlist = pollster.poll(tout) if (fdlist == []): continue fd, flags = fdlist[0] if flags & select.POLLHUP: line = p.readline() if line != "": self.fail('error: pipe seems to be closed, but still returns data') continue elif flags & select.POLLIN: line = p.readline() if not line: break continue else: self.fail('Unexpected return value from select.poll: %s' % fdlist) p.close()
Example #10
Source File: test_IOManager.py From redeem with GNU General Public License v3.0 | 6 votes |
def test_calls_callbacks(self): pipe = PipeWrapper() event = threading.Event() def callback(flag): if flag == select.POLLIN: text = pipe.reader.readline() if text == "super beans\n": event.set() else: self.assertEqual(flag, select.POLLHUP) self.manager.add_file(pipe.reader, lambda flag: callback(flag)) self.assertFalse(event.is_set()) pipe.send("super beans\n") event.wait(1) self.assertTrue(event.is_set())
Example #11
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 #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: 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 #14
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 #15
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 #16
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 #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: 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 #19
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 #20
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 #21
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 #22
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 #23
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 #24
Source File: shutdown.py From photoframe with GNU General Public License v3.0 | 5 votes |
def run(self): logging.info('GPIO shutdown can be triggered by GPIO %d', self.gpio) # Shutdown can be initated from GPIO26 poller = select.poll() try: with open('/sys/class/gpio/export', 'wb') as f: f.write('%d' % self.gpio) except: # Usually it means we ran this before pass try: with open('/sys/class/gpio/gpio%d/direction' % self.gpio, 'wb') as f: f.write('in') except: logging.warn('Either no GPIO subsystem or no access') return with open('/sys/class/gpio/gpio%d/edge' % self.gpio, 'wb') as f: f.write('both') with open('/sys/class/gpio/gpio%d/active_low' % self.gpio, 'wb') as f: f.write('1') with open('/sys/class/gpio/gpio%d/value' % self.gpio, 'rb') as f: f.read() poller.register(f, select.POLLPRI) poller.register(self.server, select.POLLHUP) i = poller.poll(None) for (fd, event) in i: if f.fileno() == fd: subprocess.call(['/sbin/poweroff'], stderr=self.void); logging.debug('Shutdown GPIO triggered') elif self.server.fileno() == fd: logging.debug('Quitting shutdown manager')
Example #25
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)
Example #26
Source File: asyncore.py From CTFCrackTools-V2 with GNU 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 #27
Source File: asyncore.py From CTFCrackTools-V2 with GNU 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 #28
Source File: asyncore.py From CTFCrackTools-V2 with GNU 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 #29
Source File: asyncore.py From CTFCrackTools-V2 with GNU 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 #30
Source File: recipe-577662.py From code with MIT License | 5 votes |
def doPoll(self, block): readyList = self.__poller.poll(None if block else 0) for (fd, eventMask) in readyList: readReady = ((eventMask & select.POLLIN) != 0) writeReady = ((eventMask & select.POLLOUT) != 0) errorReady = ((eventMask & (select.POLLERR | select.POLLHUP | select.POLLNVAL)) != 0) self.handleEventForFD(fd = fd, readReady = readReady, writeReady = writeReady, errorReady = errorReady)