improve multiprocessing, wait for complete and handle remtoe moregraceful
This commit is contained in:
		| @@ -179,13 +179,13 @@ class driver(screenDriver): | ||||
|                     try: | ||||
|                         msgBytes = self.readAll(sys.stdin.fileno(), len=4096) | ||||
|                     except (EOFError, OSError): | ||||
|                         active.value = False | ||||
|                         eventQueue.put({"Type":fenrirEventType.StopMainLoop,"Data":None})  | ||||
|                         break | ||||
|                     if self.shortcutType == 'KEY': | ||||
|                         try: | ||||
|                             self.injectTextToScreen(msgBytes) | ||||
|                         except: | ||||
|                             active.value = False | ||||
|                             eventQueue.put({"Type":fenrirEventType.StopMainLoop,"Data":None})  | ||||
|                             break | ||||
|                     else: | ||||
|                         eventQueue.put({"Type":fenrirEventType.ByteInput, | ||||
| @@ -195,7 +195,7 @@ class driver(screenDriver): | ||||
|                     try: | ||||
|                         msgBytes = self.readAll(self.p_out.fileno(), interruptFd=sys.stdin.fileno()) | ||||
|                     except (EOFError, OSError): | ||||
|                         active.value = False | ||||
|                         eventQueue.put({"Type":fenrirEventType.StopMainLoop,"Data":None})  | ||||
|                         break | ||||
|                     # feed and send event bevore write, the pyte already has the right state | ||||
|                     # so fenrir already can progress bevore os.write what should give some better reaction time | ||||
| @@ -206,7 +206,7 @@ class driver(screenDriver): | ||||
|                     self.injectTextToScreen(msgBytes, screen=sys.stdout.fileno()) | ||||
|         except Exception as e:  # Process died? | ||||
|             print(e) | ||||
|             active.value = False | ||||
|             eventQueue.put({"Type":fenrirEventType.StopMainLoop,"Data":None})  | ||||
|         finally: | ||||
|             os.kill(self.p_pid, signal.SIGTERM) | ||||
|             self.p_out.close() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user