Selaa lähdekoodia

manejo bien los threads

David 10 vuotta sitten
vanhempi
commit
523ed54102
1 muutettua tiedostoa jossa 17 lisäystä ja 4 poistoa
  1. 17 4
      client/main.py

+ 17 - 4
client/main.py

@@ -7,6 +7,12 @@ from preguntas import Preg
 from enum import Enum
 #from websocket import ws
 import time
+import signal
+import sys
+
+def signal_handler(signal, frame):
+    print('You pressed Ctrl+C!')
+    sys.exit(0)
 
 class Mode(Enum):
     diapo = 0
@@ -16,23 +22,27 @@ class Main(object):
     def __init__(self):
         self.mode = Mode.diapo
         self.s = Sock()
+        self.s.setDaemon(True)
         self.s.start()
         time.sleep(0.5)
         self.k = Keyboard(self.next,self.prev,self.toggle)
+        self.k.setDaemon(True)
     
         #self.ws = Websocket()
         self.c = Clock(self.timerTick)
+        self.c.setDaemon(True)
     
         self.slides = Slides("../node/")
         self.preg = Preg()
 
         #self.ws.start()
+
         self.k.start()
         self.c.start()
-    
-        self.k.join() #?
-        self.c.join()
-        self.s.join()
+        
+        signal.signal(signal.SIGINT, signal_handler)
+        print('Running. Exit with Ctrl-C')
+        signal.pause()
 
     def next(self):
         print("next")
@@ -47,6 +57,9 @@ class Main(object):
     def toggle(self):
         print("toggle")
         if self.mode == Mode.diapo:
+            if len(self.preg.preg) == 0:
+                print("NO preg")
+                return
             self.mode = Mode.preg
             self.s.send(self.preg.cur())
         else: