On 10:04 pm, phil@bubblehouse.org wrote:
On Oct 7, 2009, at 3:46 PM, Matt Perry wrote:
On 7 Oct 2009, at 20:30, Paul Thomas wrote:
Is there any way to do something like "yield sleep(10)" inside an @inlineCallbacks method?
I realise I can do this:
def sleep(seconds): d = defer.Deferred() reactor.callLater(seconds, d.callback, seconds) return d
but I wondered if something like that is already in the libraries?
reactor.callLater() is the best way to delay a certain function call. sleep() will block the entire program from running, which you probably don't want to do.
Not in this case; note he's referring to his custom sleep() function, not time.sleep()
Paul's example will work just fine. Also, AFAIK there's no existing twisted function to do replicate an asynchronous sleep() in this way.
Recent versions of Twisted include twisted.internet.defer.deferLater, a function rather similar to the sleep function defined above. Jean-Paul