On Tue, Jan 20, 2015 at 2:38 AM, Guido van Rossum <
gu...@python.org> wrote:
> Thank you. I have not found the time to work on this further myself, so I'd
> like to hear how you fare!
Hello, I made the example work: the essential Count Words button works
as advertised (as long as you have the holmes.txt file available).
After applying Guido's patch from 2014-05-17, I had to add touch only
three lines to make guievents.GuiEventLoop subclass BaseEventLoop
(previously it subclassed AbstractEventLoop). See changes in [1]
[1]
https://bitbucket.org/ramalho/asyncio_staging/commits/8e7668cbd3e28c41f009e48800c9671e227b80e2
But there is still a bug I don't know how to fix: when I click quit
the Tk window closes by the program hangs. It's a threading issue (see
output and traceback at the end of this message).
I am now writing a tkapp2.py demo with three buttons, to show the
three different ways of counting words: sequentially (blocking), using
callbacks and coroutines.
I'd appreciate help with the threading issue on shutdown. I did some
research on the Web but did not find a solution yet.
Best,
Luciano
##################################### output of running tkapp.py
$ python3 tkapp.py
Starting on thread -1601961560
Loading words on -1601961560
110678 words loaded
Cleaning on -1601961560
107396 remain after cleaning
Counting on -1601961560
7947 distinct words after counting
Sorting on thread -1601961560
The ten most common words: the, and, i, to, of, a, in, that, it, you
^CException ignored in: <module 'threading' from
'/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/threading.py'>
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/threading.py",
line 1295, in _shutdown
t.join()
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/threading.py",
line 1061, in join
self._wait_for_tstate_lock()
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/threading.py",
line 1077, in _wait_for_tstate_lock
elif lock.acquire(block, timeout):
KeyboardInterrupt