1 from enigma import ePythonMessagePump
3 from twisted.internet import defer
5 class SimpleThread(threading.Thread):
8 def __init__(self, fnc):
9 threading.Thread.__init__(self)
10 self.deferred = defer.Deferred()
11 self.__pump = ePythonMessagePump()
12 self.__pump_conn = self.__pump.recv_msg.connect(self.gotThreadMsg)
13 self.__asyncFunc = fnc
16 SimpleThread.instances.append(self)
18 def gotThreadMsg(self, msg):
20 self.deferred.errback(self.__err)
22 self.deferred.callback(self.__result)
23 SimpleThread.instances.remove(self)
28 self.__result = self.__asyncFunc()
29 except Exception as e:
34 __all__ = ['SimpleThread']