class CoroSocketEngineTest(object): th = None running = False engine = None server_addr = None server_sock = None def __init__(self, logger): self.engine = CoroSocketEngine(iopoll.EPoll(), is_blocking=False, debug=True) self.engine.set_logger(logger) self.engine.set_timeout(5, 5) # NOTE: you can only be client/server at one time def start_client(self): assert not self.running self.running = True def _run(self): print "client started" while self.running: try: l = self.engine.poll(1) except Exception, e: traceback.print_exc() os._exit(1) return self.th = threading.Thread(target=_run, args=(self, )) self.th.setDaemon(1) self.th.start()