Files @ 928d9a0edc05
Branch filter:

Location: OneEye/src/util.py - annotation

Laman
fix of coordinates computation
import multiprocessing
import logging as log


class MsgQueue:
	def __init__(self,handler=None):
		self._queue=multiprocessing.Queue()
		self._event=multiprocessing.Event()
		self._handleEvent=handler

	def send(self,actionName,args=tuple(),kwargs=None):
		if kwargs is None: kwargs=dict()
		self._queue.put((actionName,args,kwargs))
		self._event.set()

	def listen(self,handleEvent=None):
		if handleEvent is not None: self._handleEvent=handleEvent

		while True:
			self._event.wait()
			msg=self._queue.get()
			if self._queue.empty():
				self._event.clear()
			log.info(msg)
			if msg[0]=="!kill": break
			self._handleEvent(msg)

	def setHandler(self,handler):
		self._handleEvent=handler