[ python-Bugs-1702036 ] Turtle isn't thread-safe (crashes)
SourceForge.net
noreply at sourceforge.net
Tue Apr 17 10:29:04 CEST 2007
Bugs item #1702036, was opened at 2007-04-17 08:29
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1702036&group_id=5470
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Python Library
Group: Python 2.5
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: lomm (korka)
Assigned to: Nobody/Anonymous (nobody)
Summary: Turtle isn't thread-safe (crashes)
Initial Comment:
These are a few examples of errors during code-reentry in the turtle module:
System tested: Windows XP sp2, Python 2.5
1. turtle.circle fails if the tkinter is closed while drawing.
# Code example:
import turtle
turtle.circle(100)
# close the tkinter window while the circle is drawing
# will give an "invalid command name" exception
2. using multiple inheritance, it's possible to draw more than 1 turtle running around at a time. This works part of the time, but crashes python completely on occasions.
# Code example:
import turtle, random
from threading import Thread
class Ninja(Thread, turtle.Turtle):
'A ninja is a threaded turtle'
def __init__(self):
# constructors
Thread.__init__(self)
turtle.Turtle.__init__(self)
# where will i go?
self.Direction = random.randint(-180,180)
def run(self):
# that way!
self.left(self.Direction)
# march 'forward'
for i in range(50):
self.forward(16*random.random())
self.left(22 - 45*random.random())
ninjas = []
for i in range(3):
ninjas.append(Ninja())
ninjas[-1].start()
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1702036&group_id=5470
More information about the Python-bugs-list
mailing list