Proposal for thread-safe Tkinter
steve at holdenweb.com
Mon Oct 27 20:43:38 CET 2008
Allen Taylor wrote:
> I was given the task of upgrading a Python/Tkinter GUI application to
> the latest versions of Python and Tk. After a while, I realized that the
> application had not been written in a thread-safe manner. Multiple
> threads would simply use the Tk object directly. The application
> apparently ran fine (i.e., didn't crash!) using older versions of Python
> (2.2) and Tk (8.3), but it started to have serious problems (i.e.,
> crashing) after using the latest versions.
> The problem is that there isn't enough budget to fix the whole
> application. So, I invested a bit of time to develop mtTkinter, a
> thread-safe version of Tkinter. Importing mtTkinter actually modifies
> the original Tkinter in such a way to make it thread-safe, recognizing
> and diverting out-of-thread calls to the Tk object creation thread via a
> queue and an 'after' event. I think it works quite well, requiring
> basically no changes to the application other than to import mtTkinter
> instead of (or in addition to) Tkinter. Even packages that use Tkinter
> (e.g., Pmw) benefit.
> I would like to contribute this module (single file, about 160 lines) to
> the Python community, but I don't know how. I'm new to Python and am not
> initiated in the deep Pythonic developer world. Can someone give me some
> pointers? Many thanks.
You can publish it in the Python package index - see
If you want to have it considered for inclusion into future versions of
Python then you should post a bug to bugs.python.org wiht your patch as
an attachment and the test of the above mail as a rationale for the change.
Thanks for going to these lengths to contribute!
Steve Holden +1 571 484 6266 +1 800 494 3119
Holden Web LLC http://www.holdenweb.com/
More information about the Python-list