Пример #1
0
 def func():
     t = Timeout(0.01)
     t.start()
     try:
         evergreen.sleep(10)
     except Timeout as e:
         self.assertTrue(t is e)
Пример #2
0
 def acquire(self, blocking=True, timeout=None):
     if self._counter > 0:
         self._counter -= 1
         return True
     elif not blocking:
         return False
     else:
         current = evergreen.current.task
         self._waiters.add(current)
         timer = Timeout(timeout)
         timer.start()
         loop = evergreen.current.loop
         try:
             while self._counter <= 0:
                 loop.switch()
         except Timeout as e:
             if e is timer:
                 return False
             raise
         else:
             self._counter -= 1
             return True
         finally:
             timer.cancel()
             self._waiters.discard(current)
Пример #3
0
 def connect(self, address):
     if self.timeout == 0.0:
         return self._sock.connect(address)
     sock = self._sock
     if isinstance(address, tuple):
         r = getaddrinfo(address[0], address[1], sock.family, sock.type,
                         sock.proto)
         address = r[0][-1]
     timer = Timeout(self.timeout, timeout('timed out'))
     timer.start()
     try:
         while True:
             err = sock.getsockopt(SOL_SOCKET, SO_ERROR)
             if err:
                 raise error(err, os.strerror(err))
             result = sock.connect_ex(address)
             if not result or result == EISCONN:
                 break
             elif (result in (EWOULDBLOCK, EINPROGRESS,
                              EALREADY)) or (result == EINVAL
                                             and is_windows):
                 self._io.wait_write()
             else:
                 raise error(result, os.strerror(result))
     finally:
         timer.cancel()
Пример #4
0
 def sleep():
     with Timeout(0.01, FooTimeout):
         evergreen.sleep(10)
Пример #5
0
 def sleep():
     with Timeout(-1):
         evergreen.sleep(0.01)
Пример #6
0
 def sleep():
     with Timeout(None):
         evergreen.sleep(0.01)