From: A. Jesse Jiryu Davis Date: Sun, 12 Apr 2015 17:28:46 +0000 (-0400) Subject: Reliable Semaphore doctest. X-Git-Tag: v4.2.0b1~31^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=556a25da5d52bdf119a1d199df45da50257c41ea;p=thirdparty%2Ftornado.git Reliable Semaphore doctest. 100ms sleep doesn't always order the test output on Travis slaves. --- diff --git a/docs/locks.rst b/docs/locks.rst index a2853898b..39e9123ad 100644 --- a/docs/locks.rst +++ b/docs/locks.rst @@ -119,14 +119,24 @@ multithreaded app.)* .. testsetup:: semaphore - from tornado import gen + from collections import deque - # Ensure reliable doctest output. - waits = [0.1, 0.2, 0.1] + from tornado import gen, ioloop + from tornado.concurrent import Future + + # Ensure reliable doctest output: resolve Futures one at a time. + futures_q = deque([Future() for _ in range(3)]) @gen.coroutine + def simulator(futures): + for f in futures: + yield gen.moment + f.set_result(None) + + ioloop.IOLoop.current().add_callback(simulator, list(futures_q)) + def use_some_resource(): - yield gen.sleep(waits.pop()) + return futures_q.popleft() .. testcode:: semaphore