Issue #21882: In turtle demos, remove module scope gui and sys calls by
either deleting or moving to the module's main function.
diff --git a/Lib/turtledemo/two_canvases.py b/Lib/turtledemo/two_canvases.py
index 26882ca..d579876 100755
--- a/Lib/turtledemo/two_canvases.py
+++ b/Lib/turtledemo/two_canvases.py
@@ -1,60 +1,54 @@
 """turtledemo.two_canvases
 
 Use TurtleScreen and RawTurtle to draw on two
-distinct canvases.
+distinct canvases in a separate windows. The
+new window must be separately closed in
+addition to pressing the STOP button.
 """
-#The final mainloop only serves to keep the window open.
-
-#TODO: This runs in its own two-canvas window when selected in the
-#demoviewer examples menu but the text is not loaded and the previous
-#example is left visible. If the ending mainloop is removed, the text
-#Eis loaded, this run again in a third window, and if start is pressed,
-#demoviewer raises an error because main is not found, and  then freezes.
 
 from turtle import TurtleScreen, RawTurtle, TK
 
-root = TK.Tk()
-cv1 = TK.Canvas(root, width=300, height=200, bg="#ddffff")
-cv2 = TK.Canvas(root, width=300, height=200, bg="#ffeeee")
-cv1.pack()
-cv2.pack()
+def main():
+    root = TK.Tk()
+    cv1 = TK.Canvas(root, width=300, height=200, bg="#ddffff")
+    cv2 = TK.Canvas(root, width=300, height=200, bg="#ffeeee")
+    cv1.pack()
+    cv2.pack()
 
-s1 = TurtleScreen(cv1)
-s1.bgcolor(0.85, 0.85, 1)
-s2 = TurtleScreen(cv2)
-s2.bgcolor(1, 0.85, 0.85)
+    s1 = TurtleScreen(cv1)
+    s1.bgcolor(0.85, 0.85, 1)
+    s2 = TurtleScreen(cv2)
+    s2.bgcolor(1, 0.85, 0.85)
 
-p = RawTurtle(s1)
-q = RawTurtle(s2)
+    p = RawTurtle(s1)
+    q = RawTurtle(s2)
 
-p.color("red", (1, 0.85, 0.85))
-p.width(3)
-q.color("blue", (0.85, 0.85, 1))
-q.width(3)
+    p.color("red", (1, 0.85, 0.85))
+    p.width(3)
+    q.color("blue", (0.85, 0.85, 1))
+    q.width(3)
 
-for t in p,q:
-    t.shape("turtle")
-    t.lt(36)
+    for t in p,q:
+        t.shape("turtle")
+        t.lt(36)
 
-q.lt(180)
+    q.lt(180)
 
-for t in p, q:
-    t.begin_fill()
-for i in range(5):
     for t in p, q:
-        t.fd(50)
-        t.lt(72)
-for t in p,q:
-    t.end_fill()
-    t.lt(54)
-    t.pu()
-    t.bk(50)
+        t.begin_fill()
+    for i in range(5):
+        for t in p, q:
+            t.fd(50)
+            t.lt(72)
+    for t in p,q:
+        t.end_fill()
+        t.lt(54)
+        t.pu()
+        t.bk(50)
 
-## Want to get some info?
+    return "EVENTLOOP"
 
-#print(s1, s2)
-#print(p, q)
-#print(s1.turtles())
-#print(s2.turtles())
 
-TK.mainloop()
+if __name__ == '__main__':
+    main()
+    TK.mainloop()  # keep window open until user closes it