15 from pyee
import EventEmitter
16 from multiprocessing.pool
import ThreadPool
17 from collections
import defaultdict
21 """ Event Emitter using the threadpool to run event functions in 26 self.
pool = ThreadPool(threads)
29 def on(self, event, f=None):
30 """ Wrap on with a threaded launcher. """ 31 def wrapped(*args, **kwargs):
32 return self.pool.apply_async(f, args, kwargs)
34 w = super().
on(event, wrapped)
36 self.
wrappers[event].append((f, wrapped))
39 def once(self, event, f=None):
40 """ Wrap once with a threaded launcher. """ 41 def wrapped(*args, **kwargs):
42 return self.pool.apply_async(f, args, kwargs)
44 wrapped = super().
once(event, wrapped)
45 self.
wrappers[event].append((f, wrapped))
49 """ Wrap the remove to translate from function to wrapped def remove_listener(self, event_name, func)
def once(self, event, f=None)
def on(self, event, f=None)
def __init__(self, threads=10)