Example #1
0
    def add_writer(self, fd, callback, *args):
        if not isinstance(fd, int):
            fd = fd.fileno()

        self.remove_writer(fd)

        s = GLib.unix_fd_source_new(fd, GLib.IO_OUT)

        assert fd not in self._writers
        self._writers[fd] = GLibHandle(self, s, True, callback, args)
Example #2
0
    def add_writer(self, fd, callback, *args):
        if not isinstance(fd, int):
            fd = fd.fileno()

        self.remove_writer(fd)

        s = GLib.unix_fd_source_new(fd, GLib.IO_OUT)

        assert fd not in self._writers
        self._writers[fd] = GLibHandle(self, s, True, callback, args)
Example #3
0
    def add_reader(self, fd, callback, *args):
        if not isinstance(fd, int):
            fd = fd.fileno()

        self.remove_reader(fd)

        s = GLib.unix_fd_source_new(fd, GLib.IO_IN)

        assert fd not in self._readers
        self._readers[fd] = GLibHandle(
            loop=self,
            source=s,
            repeat=True,
            callback=callback,
            args=args)
Example #4
0
    def add_reader(self, fd, callback, *args):
        if not isinstance(fd, int):
            fd = fd.fileno()

        self.remove_reader(fd)

        s = GLib.unix_fd_source_new(fd, GLib.IO_IN)

        assert fd not in self._readers
        self._readers[fd] = GLibHandle(
            loop=self,
            source=s,
            repeat=True,
            callback=callback,
            args=args)
Example #5
0
    def select_setup_old(self):
        """
        The older implementation using GLib.Source.add_poll()
        """
        rlist, wlist, xlist = self.select_args()
        fds = set(rlist + wlist + xlist)
        assert len(fds) == 1
        fd = next(iter(fds))

        condition = GLib.IOCondition(0)
        if fd in rlist:
            condition |= GLib.IOCondition.IN
        if fd in wlist:
            condition |= GLib.IOCondition.OUT
        if fd in xlist:
            condition |= GLib.IOCondition.ERR
        source = GLib.unix_fd_source_new(fd, condition)
        source.set_callback(self.glib_select_callback_old, (fd, rlist, wlist, xlist))
        source.attach(self.context)
        self.source = source
Example #6
0
    def select_setup_old(self):
        """
        The older implementation using GLib.Source.add_poll()
        """
        rlist, wlist, xlist = self.select_args()
        fds = set(rlist + wlist + xlist)
        assert len(fds) == 1
        fd = next(iter(fds))

        condition = GLib.IOCondition(0)
        if fd in rlist:
            condition |= GLib.IOCondition.IN
        if fd in wlist:
            condition |= GLib.IOCondition.OUT
        if fd in xlist:
            condition |= GLib.IOCondition.ERR
        source = GLib.unix_fd_source_new(fd, condition)
        source.set_callback(self.glib_select_callback_old,
                            (fd, rlist, wlist, xlist))
        source.attach(self.context)
        self.source = source