This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author gpolo
Recipients ajaksu2, gpolo, loewis, pitrou, vstinner
Date 2009-01-03.15:57:50
SpamBayes Score 4.4237e-05
Marked as misclassified No
Message-id <ac2200130901030757p49810fcdwf6234e14821fb3b3@mail.gmail.com>
In-reply-to <495F88B9.3060107@v.loewis.de>
Content
> Martin v. Löwis <martin@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.
History
Date User Action Args
2009-01-03 15:57:51gpolosetrecipients: + gpolo, loewis, pitrou, vstinner, ajaksu2
2009-01-03 15:57:51gpololinkissue3638 messages
2009-01-03 15:57:50gpolocreate