Please do not reply directly to this email. All additional comments should be made in the comments box of this bug. Summary: Review Request: python-mtTkinter - A thread-safe version of Tkinter https://bugzilla.redhat.com/show_bug.cgi?id=560787 Summary: Review Request: python-mtTkinter - A thread-safe version of Tkinter Product: Fedora Version: rawhide Platform: All OS/Version: Linux Status: NEW Severity: medium Priority: medium Component: Package Review AssignedTo: nobody@xxxxxxxxxxxxxxxxx ReportedBy: promac@xxxxxxxxx QAContact: extras-qa@xxxxxxxxxxxxxxxxx CC: notting@xxxxxxxxxx, fedora-package-review@xxxxxxxxxx Estimated Hours: 0.0 Classification: Fedora Spec URL: http://orion.lcg.ufrj.br/RPMS/SPECS/python-mtTkinter.spec SRPM URL: http://orion.lcg.ufrj.br/RPMS/src/python-mtTkinter-0.3-1.fc12.src.rpm Description: Although Tkinter is technically thread-safe (assuming Tk is built with --enable-threads), practically speaking there are still problems when used in multithreaded Python applications. The problems stem from the fact that the _tkinter module attempts to gain control of the main thread via a polling technique when processing calls from other threads. If it succeeds, all is well. If it fails (i.e., after a timeout), the application receives an exception with the message: "RuntimeError: main thread is not in main loop". There is no way to tell when this might happen, so calling Tk routines from multiple threads seems to be problematic at best. The mtTkinter module solves this problem by modifying some Tkinter module definitions (in memory). The modified code intercepts out-of-thread Tkinter calls and marshals them through a queue which is read by an 'after' event running periodically in the main loop. This is similar to the technique used in many other platforms (e.g., .NET's InvokeRequired/Invoke mechanism). The technique used in mtTkinter is exception-safe as well, marshaling exceptions through a response queue back to the caller's thread. -- Configure bugmail: https://bugzilla.redhat.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. _______________________________________________ package-review mailing list package-review@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/package-review