Replaced time.clock() -> time.time() (Bug on Unix)

This commit is contained in:
sunshine
2004-08-06 13:36:41 +00:00
committed by zzz
parent 6933052de7
commit b7e50e0b3a
4 changed files with 27 additions and 24 deletions

View File

@ -53,6 +53,9 @@ from i2p.pylib import socket as pysocket # Import Python socket
# --------------------------------------------------------- # ---------------------------------------------------------
def sleep(): time.sleep(0.01) # Sleep between thread polls def sleep(): time.sleep(0.01) # Sleep between thread polls
def time(): return time.time() # High resolution timer
# Do NOT use time.clock() as it
# drops sleep() time on Linux.
log = False # Logging flag. Logs to ./log.txt. log = False # Logging flag. Logs to ./log.txt.
@ -402,11 +405,11 @@ class StreamSession(BaseSession):
' DESTINATION=' + str(dest)) ' DESTINATION=' + str(dest))
# Now wait until the stream's .didconnect flag is set to True. # Now wait until the stream's .didconnect flag is set to True.
if timeout != None: end = time.clock() + timeout if timeout != None: end = time() + timeout
while True: while True:
self.term.check() self.term.check()
if ans.didconnect: break if ans.didconnect: break
if timeout != None and time.clock() >= end: break if timeout != None and time() >= end: break
sleep() sleep()
return ans return ans
@ -429,7 +432,7 @@ class StreamSession(BaseSession):
if self.max_accept <= 0: if self.max_accept <= 0:
raise i2p.Error('listen(n) must be called before accept ' + raise i2p.Error('listen(n) must be called before accept ' +
'(n>=1)') '(n>=1)')
if timeout != None: end = time.clock() + timeout if timeout != None: end = time() + timeout
while True: while True:
self.term.check() self.term.check()
# Synchronized # Synchronized
@ -439,7 +442,7 @@ class StreamSession(BaseSession):
if self.qaccept.qsize() > 0: if self.qaccept.qsize() > 0:
return self.term.queue_get(self.qaccept) return self.term.queue_get(self.qaccept)
finally: self.lock.release() finally: self.lock.release()
if timeout != None and time.clock() >= end: break if timeout != None and time() >= end: break
sleep() sleep()
# Handle timeout and blocking errors # Handle timeout and blocking errors
@ -565,7 +568,7 @@ class Stream:
minlen = 1 minlen = 1
if waitall: minlen = n if waitall: minlen = n
if timeout != None: end = time.clock() + timeout if timeout != None: end = time() + timeout
while True: while True:
# Synchronized check and read until data available. # Synchronized check and read until data available.
self.parent.term.check() self.parent.term.check()
@ -580,7 +583,7 @@ class Stream:
# Ungraceful close: raise an error. # Ungraceful close: raise an error.
if self.err != None: raise self.err if self.err != None: raise self.err
finally: self.lock.release() finally: self.lock.release()
if timeout != None and time.clock() >= end: break if timeout != None and time() >= end: break
sleep() sleep()
# Handle timeout and blocking error # Handle timeout and blocking error
@ -669,7 +672,7 @@ class DatagramSession(BaseSession):
forever). If still no packet is available, raises BlockError forever). If still no packet is available, raises BlockError
or Timeout. Returns the pair (data, address). If peek is or Timeout. Returns the pair (data, address). If peek is
True, the data is not removed.""" True, the data is not removed."""
if timeout != None: end = time.clock() + timeout if timeout != None: end = time() + timeout
while True: while True:
self.term.check() self.term.check()
# Synchronized check and read until data available. # Synchronized check and read until data available.
@ -683,7 +686,7 @@ class DatagramSession(BaseSession):
else: else:
return self.buf.pop_first() return self.buf.pop_first()
finally: self.lock.release() finally: self.lock.release()
if timeout != None and time.clock() >= end: break if timeout != None and time() >= end: break
sleep() sleep()
# Handle timeout and blocking error # Handle timeout and blocking error
@ -737,7 +740,7 @@ class RawSession(BaseSession):
def recv(self, timeout=None, peek=False): def recv(self, timeout=None, peek=False):
"""Identical to DatagramSocket.recv. The from address is an """Identical to DatagramSocket.recv. The from address is an
empty string.""" empty string."""
if timeout != None: end = time.clock() + timeout if timeout != None: end = time() + timeout
while True: while True:
self.term.check() self.term.check()
# Synchronized check and read until data available. # Synchronized check and read until data available.
@ -751,7 +754,7 @@ class RawSession(BaseSession):
else: else:
return self.buf.pop_first() return self.buf.pop_first()
finally: self.lock.release() finally: self.lock.release()
if timeout != None and time.clock() >= end: break if timeout != None and time() >= end: break
sleep() sleep()
# Handle timeout and blocking error # Handle timeout and blocking error

View File

@ -144,13 +144,13 @@ def select(readlist, writelist, errlist, timeout=None):
sockets. See select.select() in the Python library for more sockets. See select.select() in the Python library for more
information.""" information."""
if timeout != None: end = time.clock() + timeout if timeout != None: end = time.time() + timeout
while True: while True:
# FIXME: Check performance. # FIXME: Check performance.
# Use pyselect.poll for Python sockets, if needed for speed. # Use pyselect.poll for Python sockets, if needed for speed.
(Rans, Wans, Eans) = _noblock_select(readlist,writelist,errlist) (Rans, Wans, Eans) = _noblock_select(readlist,writelist,errlist)
if timeout != None and time.clock() >= end: break if timeout != None and time.time() >= end: break
if len(Rans) != 0 or len(Wans) != 0 or len(Eans) != 0: if len(Rans) != 0 or len(Wans) != 0 or len(Eans) != 0:
# One or more sockets are ready. # One or more sockets are ready.
if timeout != 0.0: if timeout != 0.0:

View File

@ -240,8 +240,8 @@ def multithread_packet_test(raw=True):
while __done_count < n: time.sleep(0.01) while __done_count < n: time.sleep(0.01)
# Read any left-over received packets. # Read any left-over received packets.
end_time = time.clock() + multithread_wait_time end_time = time.time() + multithread_wait_time
while time.clock() < end_time: while time.time() < end_time:
# Read any available packets. # Read any available packets.
try: (p, fromaddr) = C.recv(timeout=0.0) try: (p, fromaddr) = C.recv(timeout=0.0)
except socket.BlockError: p = None except socket.BlockError: p = None
@ -257,7 +257,7 @@ def multithread_packet_test(raw=True):
if len(C_got) == len(C_recv) and len(D_got) == len(D_recv): if len(C_got) == len(C_recv) and len(D_got) == len(D_recv):
break break
if time.clock() >= end_time: if time.time() >= end_time:
may_need_increase = True may_need_increase = True
C_got.sort() C_got.sort()
@ -367,8 +367,8 @@ def multithread_stream_test():
while __done_count < n: time.sleep(0.01) while __done_count < n: time.sleep(0.01)
# Read any left-over received string data. # Read any left-over received string data.
end_time = time.clock() + multithread_wait_time end_time = time.time() + multithread_wait_time
while time.clock() < end_time: while time.time() < end_time:
# Read any available string data, non-blocking. # Read any available string data, non-blocking.
try: p = Cin.recv(100000, timeout=0.0) try: p = Cin.recv(100000, timeout=0.0)
except socket.BlockError: p = None except socket.BlockError: p = None
@ -382,7 +382,7 @@ def multithread_stream_test():
len(''.join(D_got)) == len(''.join(D_recv)): len(''.join(D_got)) == len(''.join(D_recv)):
break break
if time.clock() >= end_time: if time.time() >= end_time:
may_need_increase = True may_need_increase = True
C_got = ''.join(C_got) C_got = ''.join(C_got)

View File

@ -132,8 +132,8 @@ def packet_test(raw=True):
while __done_count < n: time.sleep(0.01) while __done_count < n: time.sleep(0.01)
# Read any left-over received packets. # Read any left-over received packets.
end_time = time.clock() + multithread_wait_time end_time = time.time() + multithread_wait_time
while time.clock() < end_time: while time.time() < end_time:
# Read any available packets. # Read any available packets.
try: (p, fromaddr) = C.recvfrom(1000, socket.MSG_DONTWAIT) try: (p, fromaddr) = C.recvfrom(1000, socket.MSG_DONTWAIT)
except socket.BlockError: p = None except socket.BlockError: p = None
@ -149,7 +149,7 @@ def packet_test(raw=True):
if len(C_got) == len(C_recv) and len(D_got) == len(D_recv): if len(C_got) == len(C_recv) and len(D_got) == len(D_recv):
break break
if time.clock() >= end_time: if time.time() >= end_time:
may_need_increase = True may_need_increase = True
C_got.sort() C_got.sort()
@ -263,8 +263,8 @@ def stream_test():
while __done_count < n: time.sleep(0.01) while __done_count < n: time.sleep(0.01)
# Read any left-over received string data. # Read any left-over received string data.
end_time = time.clock() + multithread_wait_time end_time = time.time() + multithread_wait_time
while time.clock() < end_time: while time.time() < end_time:
# Read any available string data, non-blocking. # Read any available string data, non-blocking.
try: p = Cin.recv(100000, socket.MSG_DONTWAIT) try: p = Cin.recv(100000, socket.MSG_DONTWAIT)
except socket.BlockError: p = None except socket.BlockError: p = None
@ -278,7 +278,7 @@ def stream_test():
len(''.join(D_got)) == len(''.join(D_recv)): len(''.join(D_got)) == len(''.join(D_recv)):
break break
if time.clock() >= end_time: if time.time() >= end_time:
may_need_increase = True may_need_increase = True
C_got = ''.join(C_got) C_got = ''.join(C_got)