Guilherme Polo <ggp...@gmail.com> added the comment: > Martin v. Löwis <mar...@v.loewis.de> added the comment: > >> But I don't see a RPC being used there, I just see some polling. > > Consider Tkapp_Call (e.g.). If this is invoked in the Tk interpreter > thread, then there is a direct call to Tcl_EvalObjv/Tkapp_CallResult. > > If the call is made from a different thread, then a Tkapp_CallEvent > is allocated, filled with the parameters, and Tkapp_ThreadSend is > invoked. This puts the event into the thread queue of the receiving > thread, and waits for a condition. > > In the interpreter thread, Tkapp_CallProc is invoked, which extracts > the arguments from the event, invokes Tcl_EvalObj/Tkapp_CallResult, > and notifies the condition.
This is all true but the dispatching isn't used there actually. dispatching is being used in a polling manner to try to catch the thread running the tcl interpreter which someone tried to call into, the code then proceeds to do what you described. _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue3638> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com