Python os.O_NONBLOCK Examples
The following are 30
code examples of os.O_NONBLOCK().
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
os
, or try the search function
.
Example #1
Source File: joystick.py From derplearning with MIT License | 7 votes |
def __connect(self): device_addr, hidraw_device, event_device = self.__find_device() if device_addr is None: return False self.__report_fd = os.open(hidraw_device, os.O_RDWR | os.O_NONBLOCK) self.__fd = FileIO(self.__report_fd, "rb+", closefd=False) self.__input_device = InputDevice(event_device) self.__input_device.grab() buf = bytearray(38) buf[0] = 0x02 try: return bool(fcntl.ioctl(self.__fd, 3223734279, bytes(buf))) except: pass if self.recv(): self.update_controller()
Example #2
Source File: gdbcontroller.py From pygdbmi with MIT License | 6 votes |
def _make_non_blocking(file_obj): """make file object non-blocking Windows doesn't have the fcntl module, but someone on stack overflow supplied this code as an answer, and it works http://stackoverflow.com/a/34504971/2893090""" if USING_WINDOWS: LPDWORD = POINTER(DWORD) PIPE_NOWAIT = wintypes.DWORD(0x00000001) SetNamedPipeHandleState = windll.kernel32.SetNamedPipeHandleState SetNamedPipeHandleState.argtypes = [HANDLE, LPDWORD, LPDWORD, LPDWORD] SetNamedPipeHandleState.restype = BOOL h = msvcrt.get_osfhandle(file_obj.fileno()) res = windll.kernel32.SetNamedPipeHandleState(h, byref(PIPE_NOWAIT), None, None) if res == 0: raise ValueError(WinError()) else: # Set the file status flag (F_SETFL) on the pipes to be non-blocking # so we can attempt to read from a pipe with no new data without locking # the program up fcntl.fcntl(file_obj, fcntl.F_SETFL, os.O_NONBLOCK)
Example #3
Source File: pipe.py From multibootusb with GNU General Public License v2.0 | 6 votes |
def _pipe2_by_pipe(flags): """A ``pipe2`` implementation using :func:`os.pipe`. ``flags`` is an integer providing the flags to ``pipe2``. .. warning:: This implementation is not atomic! Return a pair of file descriptors ``(r, w)``. """ fds = os.pipe() if flags & os.O_NONBLOCK != 0: for fd in fds: set_fd_status_flag(fd, os.O_NONBLOCK) if flags & O_CLOEXEC != 0: for fd in fds: set_fd_flag(fd, O_CLOEXEC) return fds
Example #4
Source File: interface.py From XFLTReaT with MIT License | 6 votes |
def freebsd_tun_alloc(self, dev, flags): try: sockfd = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ifr = struct.pack('<16si', 'tun', 0) self.iface_name = fcntl.ioctl(sockfd, self.IOCTL_FREEBSD_SIOCIFCREATE2, ifr) self.iface_name = self.iface_name.rstrip("\x00") buff = array.array('c', dev+"\x00") caddr_t, _ = buff.buffer_info() ifr = struct.pack('16sP', self.iface_name, caddr_t); fcntl.ioctl(sockfd, self.IOCTL_FREEBSD_SIOCSIFNAME, ifr) tun = os.open("/dev/"+self.iface_name, os.O_RDWR | os.O_NONBLOCK) self.iface_name = dev except IOError as e: print e common.internal_print("Error: Cannot create tunnel. Is {0} in use?".format(dev), -1) sys.exit(-1) return tun
Example #5
Source File: monitor.py From multibootusb with GNU General Public License v2.0 | 6 votes |
def start(self): """ Start this monitor. The monitor will not receive events until this method is called. This method does nothing if called on an already started :class:`Monitor`. .. note:: Typically you don't need to call this method. It is implicitly called by :meth:`poll()` and :meth:`__iter__()`. .. seealso:: :attr:`started` .. versionchanged:: 0.16 This method does nothing if the :class:`Monitor` was already started. """ if not self._started: self._libudev.udev_monitor_enable_receiving(self) # Force monitor FD into non-blocking mode pipe.set_fd_status_flag(self, os.O_NONBLOCK) self._started = True
Example #6
Source File: programs.py From raveberry with GNU Lesser General Public License v3.0 | 6 votes |
def start(self) -> None: self.current_frame = [0 for _ in range(self.bars)] self.growing_frame = b"" try: # delete old contents of the pipe os.remove(self.cava_fifo_path) except FileNotFoundError: # the file does not exist pass try: os.mkfifo(self.cava_fifo_path) except FileExistsError: # the file already exists logging.info("%s already exists while starting", self.cava_fifo_path) self.cava_process = subprocess.Popen( ["cava", "-p", os.path.join(settings.BASE_DIR, "config/cava.config")], cwd=settings.BASE_DIR, ) # cava_fifo = open(cava_fifo_path, 'r') self.cava_fifo = os.open(self.cava_fifo_path, os.O_RDONLY | os.O_NONBLOCK)
Example #7
Source File: readchar.py From marker with MIT License | 6 votes |
def read_char_no_blocking(): ''' Read a character in nonblocking mode, if no characters are present in the buffer, return an empty string ''' fd = sys.stdin.fileno() old_settings = termios.tcgetattr(fd) old_flags = fcntl.fcntl(fd, fcntl.F_GETFL) try: tty.setraw(fd, termios.TCSADRAIN) fcntl.fcntl(fd, fcntl.F_SETFL, old_flags | os.O_NONBLOCK) return sys.stdin.read(1) except IOError as e: ErrorNumber = e[0] # IOError with ErrorNumber 11(35 in Mac) is thrown when there is nothing to read(Resource temporarily unavailable) if (sys.platform.startswith("linux") and ErrorNumber != 11) or (sys.platform == "darwin" and ErrorNumber != 35): raise return "" finally: fcntl.fcntl(fd, fcntl.F_SETFL, old_flags) termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
Example #8
Source File: cli.py From HyperGAN with MIT License | 6 votes |
def train(self): i=0 if(self.args.ipython): import fcntl fd = sys.stdin.fileno() fl = fcntl.fcntl(fd, fcntl.F_GETFL) fcntl.fcntl(fd, fcntl.F_SETFL, fl | os.O_NONBLOCK) while((i < self.total_steps or self.total_steps == -1) and not self.gan.destroy): i+=1 start_time = time.time() self.step() GlobalViewer.tick() if (self.args.save_every != None and self.args.save_every != -1 and self.args.save_every > 0 and i % self.args.save_every == 0): print(" |= Saving network") self.gan.save(self.save_file) if self.args.ipython: self.check_stdin() end_time = time.time()
Example #9
Source File: virtio_console_guest.py From avocado-vt with GNU General Public License v2.0 | 6 votes |
def blocking(self, port, mode=False): """ Set port function mode blocking/nonblocking :param port: port to set mode :param mode: False to set nonblock mode, True for block mode """ fd = self._open([port])[0] try: fl = fcntl.fcntl(fd, fcntl.F_GETFL) if not mode: fcntl.fcntl(fd, fcntl.F_SETFL, fl | os.O_NONBLOCK) else: fcntl.fcntl(fd, fcntl.F_SETFL, fl & ~os.O_NONBLOCK) except Exception as inst: print("FAIL: Setting (non)blocking mode: " + str(inst)) return if mode: print("PASS: set to blocking mode") else: print("PASS: set to nonblocking mode")
Example #10
Source File: test_fcntl.py From BinderFilter with MIT License | 6 votes |
def test_fcntl_bad_file(self): class F: def __init__(self, fn): self.fn = fn def fileno(self): return self.fn self.assertRaises(ValueError, fcntl.fcntl, -1, fcntl.F_SETFL, os.O_NONBLOCK) self.assertRaises(ValueError, fcntl.fcntl, F(-1), fcntl.F_SETFL, os.O_NONBLOCK) self.assertRaises(TypeError, fcntl.fcntl, 'spam', fcntl.F_SETFL, os.O_NONBLOCK) self.assertRaises(TypeError, fcntl.fcntl, F('spam'), fcntl.F_SETFL, os.O_NONBLOCK) # Issue 15989 self.assertRaises(ValueError, fcntl.fcntl, _testcapi.INT_MAX + 1, fcntl.F_SETFL, os.O_NONBLOCK) self.assertRaises(ValueError, fcntl.fcntl, F(_testcapi.INT_MAX + 1), fcntl.F_SETFL, os.O_NONBLOCK) self.assertRaises(ValueError, fcntl.fcntl, _testcapi.INT_MIN - 1, fcntl.F_SETFL, os.O_NONBLOCK) self.assertRaises(ValueError, fcntl.fcntl, F(_testcapi.INT_MIN - 1), fcntl.F_SETFL, os.O_NONBLOCK)
Example #11
Source File: tailbot.py From abusehelper with MIT License | 6 votes |
def follow_file(filename): while True: try: fd = os.open(filename, os.O_RDONLY | os.O_NONBLOCK) except OSError: yield None continue try: inode = os.fstat(fd).st_ino first = True while True: try: stat = os.stat(filename) except OSError: stat = None yield first, time.time(), fd if stat is None or inode != stat.st_ino: break first = False finally: os.close(fd)
Example #12
Source File: tuntap.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def _openTunnel(self, name, mode): """ Open the named tunnel using the given mode. @param name: The name of the tunnel to open. @type name: L{bytes} @param mode: Flags from L{TunnelFlags} with exactly one of L{TunnelFlags.IFF_TUN} or L{TunnelFlags.IFF_TAP} set. @return: A L{_TunnelDescription} representing the newly opened tunnel. """ flags = ( self._system.O_RDWR | self._system.O_CLOEXEC | self._system.O_NONBLOCK) config = struct.pack("%dsH" % (_IFNAMSIZ,), name, mode.value) fileno = self._system.open(_TUN_KO_PATH, flags) result = self._system.ioctl(fileno, _TUNSETIFF, config) return _TunnelDescription(fileno, result[:_IFNAMSIZ].strip(b'\x00'))
Example #13
Source File: test_tuntap.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def test_startListeningOpensDevice(self): """ L{TuntapPort.startListening} opens the tunnel factory character special device C{"/dev/net/tun"} and configures it as a I{tun} tunnel. """ system = self.system self.port.startListening() tunnel = self.system.getTunnel(self.port) expected = ( system.O_RDWR | system.O_CLOEXEC | system.O_NONBLOCK, b"tun0" + b"\x00" * (_IFNAMSIZ - len(b"tun0")), self.port.interface, False, True) actual = ( tunnel.openFlags, tunnel.requestedName, tunnel.name, tunnel.blocking, tunnel.closeOnExec) self.assertEqual(expected, actual)
Example #14
Source File: os.py From satori with Apache License 2.0 | 5 votes |
def make_nonblocking(fd): """Put the file descriptor *fd* into non-blocking mode if possible. :return: A boolean value that evaluates to True if successful.""" flags = fcntl.fcntl(fd, fcntl.F_GETFL, 0) if not bool(flags & os.O_NONBLOCK): fcntl.fcntl(fd, fcntl.F_SETFL, flags | os.O_NONBLOCK) return True
Example #15
Source File: test_fcntl.py From oss-ftp with MIT License | 5 votes |
def test_fcntl_bad_file(self): with self.assertRaises(ValueError): fcntl.fcntl(-1, fcntl.F_SETFL, os.O_NONBLOCK) with self.assertRaises(ValueError): fcntl.fcntl(BadFile(-1), fcntl.F_SETFL, os.O_NONBLOCK) with self.assertRaises(TypeError): fcntl.fcntl('spam', fcntl.F_SETFL, os.O_NONBLOCK) with self.assertRaises(TypeError): fcntl.fcntl(BadFile('spam'), fcntl.F_SETFL, os.O_NONBLOCK)
Example #16
Source File: test_fcntl.py From oss-ftp with MIT License | 5 votes |
def test_fcntl_fileno(self): # the example from the library docs self.f = open(TESTFN, 'w') rv = fcntl.fcntl(self.f.fileno(), fcntl.F_SETFL, os.O_NONBLOCK) if verbose: print 'Status from fcntl with O_NONBLOCK: ', rv if sys.platform not in ['os2emx']: rv = fcntl.fcntl(self.f.fileno(), fcntl.F_SETLKW, lockdata) if verbose: print 'String from fcntl with F_SETLKW: ', repr(rv) self.f.close()
Example #17
Source File: test_pty.py From oss-ftp with MIT License | 5 votes |
def test_basic(self): try: debug("Calling master_open()") master_fd, slave_name = pty.master_open() debug("Got master_fd '%d', slave_name '%s'" % (master_fd, slave_name)) debug("Calling slave_open(%r)" % (slave_name,)) slave_fd = pty.slave_open(slave_name) debug("Got slave_fd '%d'" % slave_fd) except OSError: # " An optional feature could not be imported " ... ? raise unittest.SkipTest, "Pseudo-terminals (seemingly) not functional." self.assertTrue(os.isatty(slave_fd), 'slave_fd is not a tty') # Solaris requires reading the fd before anything is returned. # My guess is that since we open and close the slave fd # in master_open(), we need to read the EOF. # Ensure the fd is non-blocking in case there's nothing to read. orig_flags = fcntl.fcntl(master_fd, fcntl.F_GETFL) fcntl.fcntl(master_fd, fcntl.F_SETFL, orig_flags | os.O_NONBLOCK) try: s1 = os.read(master_fd, 1024) self.assertEqual('', s1) except OSError, e: if e.errno != errno.EAGAIN: raise # Restore the original flags.
Example #18
Source File: test_io.py From oss-ftp with MIT License | 5 votes |
def _set_non_blocking(self, fd): flags = fcntl.fcntl(fd, fcntl.F_GETFL) self.assertNotEqual(flags, -1) res = fcntl.fcntl(fd, fcntl.F_SETFL, flags | os.O_NONBLOCK) self.assertEqual(res, 0)
Example #19
Source File: test_signal.py From oss-ftp with MIT License | 5 votes |
def setUp(self): import fcntl self.alrm = signal.signal(signal.SIGALRM, lambda x,y:None) self.read, self.write = os.pipe() flags = fcntl.fcntl(self.write, fcntl.F_GETFL, 0) flags = flags | os.O_NONBLOCK fcntl.fcntl(self.write, fcntl.F_SETFL, flags) self.old_wakeup = signal.set_wakeup_fd(self.write)
Example #20
Source File: asyncore.py From oss-ftp with MIT License | 5 votes |
def __init__(self, fd, map=None): dispatcher.__init__(self, None, map) self.connected = True try: fd = fd.fileno() except AttributeError: pass self.set_file(fd) # set it to non-blocking mode flags = fcntl.fcntl(fd, fcntl.F_GETFL, 0) flags = flags | os.O_NONBLOCK fcntl.fcntl(fd, fcntl.F_SETFL, flags)
Example #21
Source File: twisted_test.py From viewfinder with Apache License 2.0 | 5 votes |
def _set_nonblocking(self, fd): flags = fcntl.fcntl(fd, fcntl.F_GETFL) fcntl.fcntl(fd, fcntl.F_SETFL, flags | os.O_NONBLOCK)
Example #22
Source File: posix.py From viewfinder with Apache License 2.0 | 5 votes |
def _set_nonblocking(fd): flags = fcntl.fcntl(fd, fcntl.F_GETFL) fcntl.fcntl(fd, fcntl.F_SETFL, flags | os.O_NONBLOCK)
Example #23
Source File: twisted_test.py From viewfinder with Apache License 2.0 | 5 votes |
def _set_nonblocking(self, fd): flags = fcntl.fcntl(fd, fcntl.F_GETFL) fcntl.fcntl(fd, fcntl.F_SETFL, flags | os.O_NONBLOCK)
Example #24
Source File: posix.py From viewfinder with Apache License 2.0 | 5 votes |
def _set_nonblocking(fd): flags = fcntl.fcntl(fd, fcntl.F_GETFL) fcntl.fcntl(fd, fcntl.F_SETFL, flags | os.O_NONBLOCK)
Example #25
Source File: posix.py From Computable with MIT License | 5 votes |
def _set_nonblocking(fd): flags = fcntl.fcntl(fd, fcntl.F_GETFL) fcntl.fcntl(fd, fcntl.F_SETFL, flags | os.O_NONBLOCK)
Example #26
Source File: piku.py From piku with MIT License | 5 votes |
def cmd_run(app, cmd): """e.g.: piku run <app> ls -- -al""" app = exit_if_invalid(app) config_file = join(ENV_ROOT, app, 'LIVE_ENV') environ.update(parse_settings(config_file)) for f in [stdout, stderr]: fl = fcntl(f, F_GETFL) fcntl(f, F_SETFL, fl | O_NONBLOCK) p = Popen(' '.join(cmd), stdin=stdin, stdout=stdout, stderr=stderr, env=environ, cwd=join(APP_ROOT, app), shell=True) p.communicate()
Example #27
Source File: test_posix.py From BinderFilter with MIT License | 5 votes |
def test_osshlock(self): if hasattr(posix, "O_SHLOCK"): fd1 = os.open(test_support.TESTFN, os.O_WRONLY|os.O_SHLOCK|os.O_CREAT) fd2 = os.open(test_support.TESTFN, os.O_WRONLY|os.O_SHLOCK|os.O_CREAT) os.close(fd2) os.close(fd1) if hasattr(posix, "O_EXLOCK"): fd = os.open(test_support.TESTFN, os.O_WRONLY|os.O_SHLOCK|os.O_CREAT) self.assertRaises(OSError, os.open, test_support.TESTFN, os.O_RDONLY|os.O_EXLOCK|os.O_NONBLOCK) os.close(fd)
Example #28
Source File: test_posix.py From BinderFilter with MIT License | 5 votes |
def test_osexlock(self): if hasattr(posix, "O_EXLOCK"): fd = os.open(test_support.TESTFN, os.O_WRONLY|os.O_EXLOCK|os.O_CREAT) self.assertRaises(OSError, os.open, test_support.TESTFN, os.O_WRONLY|os.O_EXLOCK|os.O_NONBLOCK) os.close(fd) if hasattr(posix, "O_SHLOCK"): fd = os.open(test_support.TESTFN, os.O_WRONLY|os.O_SHLOCK|os.O_CREAT) self.assertRaises(OSError, os.open, test_support.TESTFN, os.O_WRONLY|os.O_EXLOCK|os.O_NONBLOCK) os.close(fd)
Example #29
Source File: test_fcntl.py From BinderFilter with MIT License | 5 votes |
def test_fcntl_fileno(self): # the example from the library docs self.f = open(TESTFN, 'w') rv = fcntl.fcntl(self.f.fileno(), fcntl.F_SETFL, os.O_NONBLOCK) if verbose: print 'Status from fcntl with O_NONBLOCK: ', rv if sys.platform not in ['os2emx']: rv = fcntl.fcntl(self.f.fileno(), fcntl.F_SETLKW, lockdata) if verbose: print 'String from fcntl with F_SETLKW: ', repr(rv) self.f.close()
Example #30
Source File: test_fcntl.py From oss-ftp with MIT License | 5 votes |
def test_fcntl_bad_file_overflow(self): from _testcapi import INT_MAX, INT_MIN # Issue 15989 with self.assertRaises(ValueError): fcntl.fcntl(INT_MAX + 1, fcntl.F_SETFL, os.O_NONBLOCK) with self.assertRaises(ValueError): fcntl.fcntl(BadFile(INT_MAX + 1), fcntl.F_SETFL, os.O_NONBLOCK) with self.assertRaises(ValueError): fcntl.fcntl(INT_MIN - 1, fcntl.F_SETFL, os.O_NONBLOCK) with self.assertRaises(ValueError): fcntl.fcntl(BadFile(INT_MIN - 1), fcntl.F_SETFL, os.O_NONBLOCK)