[Twisted-Python] reactor and thread

Gábor Bernáth gabor.bernath at gmail.com
Wed Jun 13 15:01:37 EDT 2007

Hi Michele,

> My question is: it is possible to call the function from/to a specific
> thread?

you could use deferToThread() to run a task in a separate thread and
get the results in the main thread.

here are the docs:

here is a small example which asks for user input in a separate thread:

from twisted.internet import reactor, defer, threads

def input():
    return threads.deferToThread(blocking_task)

def blocking_task():
    print "working... enter something to end task"
    return raw_input()

def got_result(data):
    print "the long-running task results in:", data


is this what you want to do?

On 6/13/07, Michele Petrazzo - Unipex srl <michele.petrazzo at unipex.it> wrote:
> Hi all,
> I have a project where I writing the "server" (on win xp) and I want to
> communicate with a client, so twisted it's all I need.
> Into the "server" I have also a python bind to a dll (with ctypes) and I
> see strange problems (windows crashes) when I call a dll function inside
> a thread. My thread it's a twisted "Protocol".
> My question is: it is possible to call the function from/to a specific
> thread? So somethink like:
> class MyDll:
>   def funct(self, callBack):
>     #do the work
>     reactor.call_in_main_thrad(callBack)
> tid = create_a_thread_and_load_MyDll() # where I make the dll instance
> and all the work need into a thread
> #into a someone function into the main thread
> def callBack():
>   # a simple callback
> reactor.callIntoThread(tid, funct, callBack)
> Is this possible with twisted? (Does I'm dreaming?)
> P.s. If I try with the wx "reactor" (so wx.MainLoop), I see no problem!
> In that case, I instance the dll into the class __init__ (inherit from
> wx.Frame) and into a someone event (i.e. Button click) I call a dll
> funct and all work without crash...
> Thanks,
> Michele
> _______________________________________________
> Twisted-Python mailing list
> Twisted-Python at twistedmatrix.com
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

More information about the Twisted-Python mailing list