| 
					
				 | 
			
			
				@@ -284,6 +284,9 @@ class State(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self._taskheap = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.event_callback = callback 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self._mutex = threading.Lock() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.handlers = {'task': self.task_event, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                         'worker': self.worker_event} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self._get_handler = self.handlers.__getitem__ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def freeze_while(self, fun, *args, **kwargs): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         clear_after = kwargs.pop('clear_after', False) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -383,11 +386,14 @@ class State(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         with self._mutex: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return self._dispatch_event(event) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    def _dispatch_event(self, event): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def _dispatch_event(self, event, kwdict=kwdict): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.event_count += 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         event = kwdict(event) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         group, _, subject = event['type'].partition('-') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        getattr(self, group + '_event')(subject, event) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self._get_handler(group)(subject, event) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        except KeyError: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            pass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if self.event_callback: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             self.event_callback(self, event) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |