Skip to content

Commit c41c27f

Browse files
committed
Event plugin prints event trace on exception
1 parent da63be9 commit c41c27f

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

spockbot/plugins/core/event.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
"""
22
Provides the core event loop
33
"""
4-
import copy
54
import logging
65
import signal
76
from collections import defaultdict
7+
from copy import deepcopy
88

99
from spockbot.plugins.base import pl_announce
1010
from spockbot.plugins.tools.event import EVENT_UNREGISTER
@@ -56,10 +56,15 @@ def unreg_event_handler(self, event, handler):
5656
def emit(self, event, data=None):
5757
# the handler list of this event can change during handler execution,
5858
# so we loop over a copy
59-
for handler in self.event_handlers[event][:]:
60-
d = data.clone() if hasattr(data, 'clone') else copy.deepcopy(data)
61-
if handler(event, d) == EVENT_UNREGISTER:
62-
self.event_handlers[event].remove(handler)
59+
try:
60+
for handler in self.event_handlers[event][:]:
61+
d = data.clone() if hasattr(data, 'clone') else deepcopy(data)
62+
if handler(event, d) == EVENT_UNREGISTER:
63+
self.event_handlers[event].remove(handler)
64+
except:
65+
logger.debug('EVENTCORE: Exception while emitting %s %s',
66+
event, data)
67+
raise
6368

6469
def kill(self, *args):
6570
self.kill_event = True

0 commit comments

Comments
 (0)