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.
 
Allen B. Taylor
MDA
9445 Airport Road
Brampton, ON  L6S 4J3
905-790-2800 ext. 4350
[EMAIL PROTECTED]
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to