uasyncio: Log only if __debug__==True (i.e. no optimization).

pull/11/head
Paul Sokolovsky 2014-10-26 00:20:24 +03:00
rodzic cbaf0d3b57
commit 0fcb1daa81
1 zmienionych plików z 39 dodań i 20 usunięć

Wyświetl plik

@ -11,29 +11,35 @@ class EpollEventLoop(EventLoop):
self.poller = select.epoll(1)
def add_reader(self, fd, cb, *args):
if __debug__:
log.debug("add_reader%s", (fd, cb, args))
self.poller.register(fd, select.EPOLLIN, (cb, args))
def remove_reader(self, fd):
if __debug__:
log.debug("remove_reader(%s)", fd)
self.poller.unregister(fd)
def add_writer(self, fd, cb, *args):
if __debug__:
log.debug("add_writer%s", (fd, cb, args))
self.poller.register(fd, select.EPOLLOUT, (cb, args))
def remove_writer(self, fd):
if __debug__:
log.debug("remove_writer(%s)", fd)
self.poller.unregister(fd)
def wait(self, delay):
if __debug__:
log.debug("epoll.wait(%d)", delay)
if delay == -1:
res = self.poller.poll(-1)
else:
res = self.poller.poll(int(delay * 1000))
log.debug("epoll result: %s", res)
#log.debug("epoll result: %s", res)
for cb, ev in res:
if __debug__:
log.debug("Calling IO callback: %s%s", cb[0], cb[1])
cb[0](*cb[1])
@ -59,8 +65,10 @@ class StreamReader:
return res
def readline(self):
if __debug__:
log.debug("StreamReader.readline()")
s = yield IORead(self.s)
if __debug__:
log.debug("StreamReader.readline(): after IORead: %s", s)
while True:
res = self.s.readline()
@ -69,6 +77,7 @@ class StreamReader:
log.warn("Empty read")
if not res:
yield IOReadDone(self.s)
if __debug__:
log.debug("StreamReader.readline(): res: %s", res)
return res
@ -88,20 +97,24 @@ class StreamWriter:
# to return immediately (which means it has to buffer all the
# data), this method is a coroutine.
sz = len(buf)
if __debug__:
log.debug("StreamWriter.awrite(): spooling %d bytes", sz)
while True:
res = self.s.write(buf)
# If we spooled everything, return immediately
if res == sz:
if __debug__:
log.debug("StreamWriter.awrite(): completed spooling %d bytes", res)
return
if res is None:
res = 0
if __debug__:
log.debug("StreamWriter.awrite(): spooled partial %d bytes", res)
assert res < sz
buf = buf[res:]
sz -= res
s = yield IOWrite(self.s)
if __debug__:
log.debug("StreamWriter.awrite(): can write more")
def close(self):
@ -113,6 +126,7 @@ class StreamWriter:
def open_connection(host, port):
if __debug__:
log.debug("open_connection(%s, %s)", host, port)
s = _socket.socket()
s.setblocking(False)
@ -123,8 +137,10 @@ def open_connection(host, port):
except OSError as e:
if e.args[0] != errno.EINPROGRESS:
raise
if __debug__:
log.debug("open_connection: After connect")
s = yield IOWrite(s)
if __debug__:
log.debug("open_connection: After iowait: %s", s)
return StreamReader(s), StreamWriter(s)
@ -140,10 +156,13 @@ def start_server(client_coro, host, port):
s.bind(addr)
s.listen(10)
while True:
if __debug__:
log.debug("start_server: Before accept")
yield IORead(s)
if __debug__:
log.debug("start_server: After iowait")
s2, client_addr = s.accept()
s2.setblocking(False)
if __debug__:
log.debug("start_server: After accept: %s", s2)
yield client_coro(StreamReader(s2), StreamWriter(s2))