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


Python Event.add_timer方法代码示例

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


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

示例1: _do_close

# 需要导入模块: from event import Event [as 别名]
# 或者: from event.Event import add_timer [as 别名]
 def _do_close(self):
     _logger.debug('%s, _do_close', str(self))
     if self._error:
         self._stop_sending()
         self.stop_receiving()
     if self._close_ev is None:
         self._close_ev = Event.add_timer(0)
         self._close_ev.set_handler(lambda ev: self._on_close())
开发者ID:binasc,项目名称:utils,代码行数:10,代码来源:nonblocking.py

示例2: _on_send

# 需要导入模块: from event import Event [as 别名]
# 或者: from event.Event import add_timer [as 别名]
    def _on_send(self):
        _logger.debug('%s, _on_send', str(self))
        if self._fin_sent:
            self._stop_sending()
            if self._fin_received:
                self._do_close()
            else:
                self.start_receiving()
                assert(self._fin_ev is None)
                _logger.debug('%s, add fin wait timer', str(self))
                self._fin_ev = Event.add_timer(FIN_WAIT_TIMEOUT)
                self._fin_ev.set_handler(lambda ev: self._wait_fin_timeout())
            return

        sent_bytes = 0
        ready_to_send = True
        while len(self._to_send) > 0:
            data, addr = self._to_send.popleft()
            if data is None:
                left = len(self._to_send)
                if left != 0:
                    _logger.warning('%s, discard %d packages', str(self), left)
                    self._to_send.clear()
                    self._to_send_bytes = 0
                self._shutdown()
                return
            try:
                sent = self._send(data, addr)
                sent_bytes += sent
                self._to_send_bytes -= sent
                if sent < len(data):
                    self._to_send.appendleft((data[sent:], addr))
            except self._errorType as msg:
                self._to_send.appendleft((data, addr))
                if msg.errno != errno.EAGAIN and msg.errno != errno.EINPROGRESS:
                    _logger.warning('%s, send(%d): %s',
                                    str(self), msg.errno, msg.strerror)
                    self._error = True
                    self._do_close()
                    return
                else:
                    ready_to_send = False
                    break

        _logger.debug("%s, sent %d bytes", str(self), sent_bytes)

        if len(self._to_send) == 0:
            self._stop_sending()

        self._to_send_or_not(ready_to_send)
开发者ID:binasc,项目名称:utils,代码行数:52,代码来源:nonblocking.py

示例3: connect

# 需要导入模块: from event import Event [as 别名]
# 或者: from event.Event import add_timer [as 别名]
    def connect(self, addr, port):
        _logger.debug('connect')
        if self.is_closed():
            return

        self._wev.set_handler(lambda ev: self._check_connected())
        try:
            _logger.debug('connecting to %s:%d', addr, port)
            self._fd.connect((addr, port))
        except socket.error as msg:
            if msg.errno != errno.EAGAIN and msg.errno != errno.EINPROGRESS:
                _logger.error('fd: %d, connect: %s',
                              self._fd.fileno(), os.strerror(msg.errno))
                self._error = True
                self._do_close()
            else:
                Event.addEvent(self._wev)
        else:
            timer = Event.add_timer(0)
            timer.set_handler(lambda ev: self._wev.get_handler()(self._wev))
开发者ID:binasc,项目名称:utils,代码行数:22,代码来源:stream.py

示例4: _enable_heartbeat

# 需要导入模块: from event import Event [as 别名]
# 或者: from event.Event import add_timer [as 别名]
 def _enable_heartbeat(self):
     self._hb_event = Event.add_timer(HEARTBEAT_INTERVAL)
     self._hb_event.set_handler(lambda ev: self._send_heartbeat())
开发者ID:binasc,项目名称:utils,代码行数:5,代码来源:tunnel.py


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