From 0f5d5cead7471d6b150c53082cd00a0f3b25fa12 Mon Sep 17 00:00:00 2001 From: Daniel Mizyrycki Date: Sun, 25 Dec 2016 17:22:55 -0800 Subject: [PATCH] uasyncio: Add minimum esp8266 support --- uasyncio.core/uasyncio/core.py | 8 +++--- uasyncio/uasyncio/__init__.py | 48 +++++++++++++++++----------------- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/uasyncio.core/uasyncio/core.py b/uasyncio.core/uasyncio/core.py index 975ef7f6..d63a6c56 100644 --- a/uasyncio.core/uasyncio/core.py +++ b/uasyncio.core/uasyncio/core.py @@ -93,16 +93,16 @@ class EventLoop: # self.add_reader(ret.obj.fileno(), lambda self, c, f: self.call_soon(c, f), self, cb, ret.obj) # self.add_reader(ret.obj.fileno(), lambda c, f: self.call_soon(c, f), cb, ret.obj) # self.add_reader(arg.fileno(), lambda cb: self.call_soon(cb), cb) - self.add_reader(arg.fileno(), cb) + self.add_reader(arg, cb) continue elif isinstance(ret, IOWrite): # self.add_writer(arg.fileno(), lambda cb: self.call_soon(cb), cb) - self.add_writer(arg.fileno(), cb) + self.add_writer(arg, cb) continue elif isinstance(ret, IOReadDone): - self.remove_reader(arg.fileno()) + self.remove_reader(arg) elif isinstance(ret, IOWriteDone): - self.remove_writer(arg.fileno()) + self.remove_writer(arg) elif isinstance(ret, StopLoop): return arg else: diff --git a/uasyncio/uasyncio/__init__.py b/uasyncio/uasyncio/__init__.py index 21f2a669..aa067406 100644 --- a/uasyncio/uasyncio/__init__.py +++ b/uasyncio/uasyncio/__init__.py @@ -11,42 +11,42 @@ class EpollEventLoop(EventLoop): self.poller = select.poll() self.objmap = {} - def add_reader(self, fd, cb, *args): + def add_reader(self, sock, cb, *args): if DEBUG and __debug__: - log.debug("add_reader%s", (fd, cb, args)) + log.debug("add_reader%s", (sock, cb, args)) if args: - self.poller.register(fd, select.POLLIN) - self.objmap[fd] = (cb, args) + self.poller.register(sock, select.POLLIN) + self.objmap[id(sock)] = (cb, args) else: - self.poller.register(fd, select.POLLIN) - self.objmap[fd] = cb + self.poller.register(sock, select.POLLIN) + self.objmap[id(sock)] = cb - def remove_reader(self, fd): + def remove_reader(self, sock): if DEBUG and __debug__: - log.debug("remove_reader(%s)", fd) - self.poller.unregister(fd) - del self.objmap[fd] + log.debug("remove_reader(%s)", sock) + self.poller.unregister(sock) + del self.objmap[id(sock)] - def add_writer(self, fd, cb, *args): + def add_writer(self, sock, cb, *args): if DEBUG and __debug__: - log.debug("add_writer%s", (fd, cb, args)) + log.debug("add_writer%s", (sock, cb, args)) if args: - self.poller.register(fd, select.POLLOUT) - self.objmap[fd] = (cb, args) + self.poller.register(sock, select.POLLOUT) + self.objmap[id(sock)] = (cb, args) else: - self.poller.register(fd, select.POLLOUT) - self.objmap[fd] = cb + self.poller.register(sock, select.POLLOUT) + self.objmap[id(sock)] = cb - def remove_writer(self, fd): + def remove_writer(self, sock): if DEBUG and __debug__: - log.debug("remove_writer(%s)", fd) + log.debug("remove_writer(%s)", sock) try: - self.poller.unregister(fd) - self.objmap.pop(fd, None) + self.poller.unregister(sock) + self.objmap.pop(id(sock), None) except OSError as e: - # StreamWriter.awrite() first tries to write to an fd, + # StreamWriter.awrite() first tries to write to a socket, # and if that succeeds, yield IOWrite may never be called - # for that fd, and it will never be added to poller. So, + # for that socket, and it will never be added to poller. So, # ignore such error. if e.args[0] != errno.ENOENT: raise @@ -63,8 +63,8 @@ class EpollEventLoop(EventLoop): # Remove "if res" workaround after # https://github.com/micropython/micropython/issues/2716 fixed. if res: - for fd, ev in res: - cb = self.objmap[fd] + for sock, ev in res: + cb = self.objmap[id(sock)] if DEBUG and __debug__: log.debug("Calling IO callback: %r", cb) if isinstance(cb, tuple):