当前位置: 首页>>代码示例>>Python>>正文


Python uselect.POLLHUP属性代码示例

本文整理汇总了Python中uselect.POLLHUP属性的典型用法代码示例。如果您正苦于以下问题:Python uselect.POLLHUP属性的具体用法?Python uselect.POLLHUP怎么用?Python uselect.POLLHUP使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在uselect的用法示例。


在下文中一共展示了uselect.POLLHUP属性的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: wait

# 需要导入模块: import uselect [as 别名]
# 或者: from uselect import POLLHUP [as 别名]
def wait(self, delay):
        if DEBUG and __debug__:
            log.debug("poll.wait(%d)", delay)
        # We need one-shot behavior (second arg of 1 to .poll())
        res = self.poller.ipoll(delay, 1)
        #log.debug("poll result: %s", res)
        # Remove "if res" workaround after
        # https://github.com/micropython/micropython/issues/2716 fixed.
        if res:
            for sock, ev in res:
                cb = self.objmap[id(sock)]
                if ev & (select.POLLHUP | select.POLLERR):
                    # These events are returned even if not requested, and
                    # are sticky, i.e. will be returned again and again.
                    # If the caller doesn't do proper error handling and
                    # unregister this sock, we'll busy-loop on it, so we
                    # as well can unregister it now "just in case".
                    self.remove_reader(sock)
                if DEBUG and __debug__:
                    log.debug("Calling IO callback: %r", cb)
                if isinstance(cb, tuple):
                    cb[0](*cb[1])
                else:
                    cb.pend_throw(None)
                    self.call_soon(cb) 
开发者ID:lemariva,项目名称:uPyCam,代码行数:27,代码来源:__init__.py

示例2: read

# 需要导入模块: import uselect [as 别名]
# 或者: from uselect import POLLHUP [as 别名]
def read(self):
        poll_events = self.poll.poll(0)

        if not poll_events:
            return

        # Check the flag for connection hung up
        if poll_events[0][1] & uselect.POLLHUP:
            self.client_close = True

        msg_bytes = None
        try:
            msg_bytes = self.ws.read()
        except OSError:
            self.client_close = True

        # If no bytes => connection closed. See the link below.
        # http://stefan.buettcher.org/cs/conn_closed.html
        if not msg_bytes or self.client_close:
            raise ClientClosedError()

        return msg_bytes 
开发者ID:BetaRavener,项目名称:upy-websocket-server,代码行数:24,代码来源:ws_connection.py

示例3: wait

# 需要导入模块: import uselect [as 别名]
# 或者: from uselect import POLLHUP [as 别名]
def wait(self, delay):
        if DEBUG and __debug__:
            log.debug("poll.wait(%d)", delay)
        # We need one-shot behavior (second arg of 1 to .poll())
        res = self.poller.ipoll(delay, 1)
        # log.debug("poll result: %s", res)
        # Remove "if res" workaround after
        # https://github.com/micropython/micropython/issues/2716 fixed.
        if res:
            for sock, ev in res:
                cb = self.objmap[id(sock)]
                if ev & (select.POLLHUP | select.POLLERR):
                    # These events are returned even if not requested, and
                    # are sticky, i.e. will be returned again and again.
                    # If the caller doesn't do proper error handling and
                    # unregister this sock, we'll busy-loop on it, so we
                    # as well can unregister it now "just in case".
                    self.remove_reader(sock)
                if DEBUG and __debug__:
                    log.debug("Calling IO callback: %r", cb)
                if isinstance(cb, tuple):
                    cb[0](*cb[1])
                else:
                    cb.pend_throw(None)
                    self.call_soon(cb) 
开发者ID:kevinkk525,项目名称:pysmartnode,代码行数:27,代码来源:__init__.py

示例4: add_reader

# 需要导入模块: import uselect [as 别名]
# 或者: from uselect import POLLHUP [as 别名]
def add_reader(self, sock, cb, *args):
        if DEBUG and __debug__:
            log.debug("add_reader%s", (sock, cb, args))
        # HACK This should read
        # self._register(sock, select.POLLIN)
        # Temporary workround for https://github.com/micropython/micropython/issues/5172
        # The following is not compliant with POSIX or with the docs
        self._register(sock, select.POLLIN | select.POLLHUP | select.POLLERR)  # t35tB0t add HUP and ERR to force LWIP revents
        if args:
            self.rdobjmap[id(sock)] = (cb, args)
        else:
            self.rdobjmap[id(sock)] = cb 
开发者ID:peterhinch,项目名称:micropython-async,代码行数:14,代码来源:__init__.py

示例5: add_writer

# 需要导入模块: import uselect [as 别名]
# 或者: from uselect import POLLHUP [as 别名]
def add_writer(self, sock, cb, *args):
        if DEBUG and __debug__:
            log.debug("add_writer%s", (sock, cb, args))
        # HACK Should read
        # self._register(sock, select.POLLOUT)
        # Temporary workround for https://github.com/micropython/micropython/issues/5172
        # The following is not compliant with POSIX or with the docs
        self._register(sock, select.POLLOUT | select.POLLHUP | select.POLLERR)  # t35tB0t add HUP and ERR to force LWIP revents
        if args:
            self.wrobjmap[id(sock)] = (cb, args)
        else:
            self.wrobjmap[id(sock)] = cb 
开发者ID:peterhinch,项目名称:micropython-async,代码行数:14,代码来源:__init__.py

示例6: wait

# 需要导入模块: import uselect [as 别名]
# 或者: from uselect import POLLHUP [as 别名]
def wait(self, delay):
        if DEBUG and __debug__:
            log.debug("poll.wait(%d)", delay)
        # We need one-shot behavior (second arg of 1 to .poll())
        res = self.poller.ipoll(delay, 1)
        #log.debug("poll result: %s", res)
        for sock, ev in res:
            if ev & select.POLLOUT:
                cb = self.wrobjmap[id(sock)]
                if cb is None:
                    continue  # Not yet ready.
                # Invalidate objmap: can get adverse timing in fast_io whereby add_writer
                # is not called soon enough. Ignore poll events occurring before we are
                # ready to handle them.
                self.wrobjmap[id(sock)] = None
                if ev & (select.POLLHUP | select.POLLERR):
                    # These events are returned even if not requested, and
                    # are sticky, i.e. will be returned again and again.
                    # If the caller doesn't do proper error handling and
                    # unregister this sock, we'll busy-loop on it, so we
                    # as well can unregister it now "just in case".
                    self.remove_writer(sock)
                if DEBUG and __debug__:
                    log.debug("Calling IO callback: %r", cb)
                if isinstance(cb, tuple):
                    cb[0](*cb[1])
                else:
                    prev = cb.pend_throw(None)  # Enable task to run.
                    #if isinstance(prev, Exception):
                        #print('Put back exception')
                        #cb.pend_throw(prev)
                    self._call_io(cb)  # Put coro onto runq (or ioq if one exists)
            if ev & select.POLLIN:
                cb = self.rdobjmap[id(sock)]
                if cb is None:
                    continue
                self.rdobjmap[id(sock)] = None
                if ev & (select.POLLHUP | select.POLLERR):
                    # These events are returned even if not requested, and
                    # are sticky, i.e. will be returned again and again.
                    # If the caller doesn't do proper error handling and
                    # unregister this sock, we'll busy-loop on it, so we
                    # as well can unregister it now "just in case".
                    self.remove_reader(sock)
                if DEBUG and __debug__:
                    log.debug("Calling IO callback: %r", cb)
                if isinstance(cb, tuple):
                    cb[0](*cb[1])
                else:
                    prev = cb.pend_throw(None)  # Enable task to run.
                    #if isinstance(prev, Exception):
                        #cb.pend_throw(prev)
                        #print('Put back exception')
                    self._call_io(cb) 
开发者ID:peterhinch,项目名称:micropython-async,代码行数:56,代码来源:__init__.py


注:本文中的uselect.POLLHUP属性示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。