import gevent from gevent.hub import get_hub called = [] def f(): called.append(1) def main(): loop = get_hub().loop x = loop.run_callback(f) assert x, x gevent.sleep(0) assert called == [1], called assert not x, (x, bool(x)) x = loop.run_callback(f) assert x, x x.stop() assert not x, x gevent.sleep(0) assert called == [1], called assert not x, x if __name__ == '__main__': called[:] = [] main()