john pfeiffer
  • Home
  • Categories
  • Tags
  • Archives

deferToThread blocking call LoopingCall

import time
from twisted.internet import reactor, threads
from twisted.internet.task import LoopingCall

def blockingApiCall( arg ):
    time.sleep(1)
    return arg

def nonblockingCall( arg ):
    print arg

def printResult( result ):
    print result

def finish():
    reactor.stop()

d = threads.deferToThread( blockingApiCall, "Goose" )
d.addCallback( printResult )

LoopingCall( nonblockingCall,  "Duck" ).start( .25 )        # only starts when the reactor starts

reactor.callLater( 2, finish )
reactor.run()

  • « xml domish pytest
  • xmpp client authenticate discover »

Published

Jul 19, 2013

Category

python-twisted

~51 words

Tags

  • blocking 1
  • call 1
  • defertothread 1
  • loopingcall 1
  • python 180
  • twisted 20