def start_echo_server(): global server_addr poll = io_poll.get_poll() print str(poll) server = CoroSocketEngine(poll, is_blocking=False) server.set_logger(getLogger("server")) def _on_readable(conn): buf, eof = conn.read_avail(4096) if buf: #print "write", len(buf) yield conn.write(buf) if eof: conn.close() else: conn.watch() return server.listen_addr(server_addr, readable_cb=_on_readable) def _run(_server): while True: try: _server.poll() except Exception, e: traceback.print_exc() os._exit(1) return