summaryrefslogtreecommitdiffstats
path: root/Demo/threads
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1994-05-16 09:34:05 (GMT)
committerGuido van Rossum <guido@python.org>1994-05-16 09:34:05 (GMT)
commit655f600b5876a4f1bd19b2adbb489524e11296b3 (patch)
tree97ed0e8b2292f78d31b314d3b7564b144f10fa02 /Demo/threads
parentdc3c53cf8d65bebd2ced151f693a78c47ae939de (diff)
downloadcpython-655f600b5876a4f1bd19b2adbb489524e11296b3.zip
cpython-655f600b5876a4f1bd19b2adbb489524e11296b3.tar.gz
cpython-655f600b5876a4f1bd19b2adbb489524e11296b3.tar.bz2
Don't use thread.exit_prog(); set a global variable to stop other
thread
Diffstat (limited to 'Demo/threads')
-rw-r--r--Demo/threads/wpi.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/Demo/threads/wpi.py b/Demo/threads/wpi.py
index e408d21..d4c0ef9 100644
--- a/Demo/threads/wpi.py
+++ b/Demo/threads/wpi.py
@@ -1,16 +1,19 @@
# Display digits of pi in a window, calculating in a separate thread.
# Compare ../scripts/pi.py.
+import sys
import time
import thread
import stdwin
from stdwinevents import *
+ok = 1
+
digits = []
def worker():
k, a, b, a1, b1 = 2l, 4l, 1l, 12l, 4l
- while 1:
+ while ok:
# Next approximation
p, q, k = k*k, 2l*k+1l, k+1l
a, b, a1, b1 = a1, b1, p*a+q*a1, p*b+q*b1
@@ -23,11 +26,13 @@ def worker():
d, d1 = a/b, a1/b1
def main():
+ global ok
digits_seen = 0
thread.start_new_thread(worker, ())
tw = stdwin.textwidth('0 ')
lh = stdwin.lineheight()
stdwin.setdefwinsize(20 * tw, 20 * lh)
+ stdwin.setdefscrollbars(0, 1)
win = stdwin.open('digits of pi')
options = win.menucreate('Options')
options.additem('Auto scroll')
@@ -37,7 +42,8 @@ def main():
win.settimer(1)
type, w, detail = stdwin.getevent()
if type == WE_CLOSE:
- thread.exit_prog(0)
+ ok = 0
+ sys.exit(0)
elif type == WE_DRAW:
(left, top), (right, bottom) = detail
digits_seen = len(digits)