[ONOS-6944] Restarted dispatch loop become stopped when event sink exceeded execution time limit in CoreEventDispatcher
Change-Id: I85d12b0472f4349124d1e2afead59becce52c976
diff --git a/core/net/src/main/java/org/onosproject/event/impl/CoreEventDispatcher.java b/core/net/src/main/java/org/onosproject/event/impl/CoreEventDispatcher.java
index cbcf1b4..58c26c4 100644
--- a/core/net/src/main/java/org/onosproject/event/impl/CoreEventDispatcher.java
+++ b/core/net/src/main/java/org/onosproject/event/impl/CoreEventDispatcher.java
@@ -176,22 +176,21 @@
@Override
public void run() {
stopped = false;
- log.info("Dispatch loop initiated");
+ log.info("Dispatch loop({}) initiated", name);
while (!stopped) {
try {
// Fetch the next event and if it is the kill-pill, bail
Event event = eventsQueue.take();
- if (event == KILL_PILL) {
- break;
+ if (event != KILL_PILL) {
+ process(event);
}
- process(event);
} catch (InterruptedException e) {
log.warn("Dispatch loop interrupted");
} catch (Exception | Error e) {
log.warn("Error encountered while dispatching event:", e);
}
}
- log.info("Dispatch loop terminated");
+ log.info("Dispatch loop({}) terminated", name);
}
// Locate the sink for the event class and use it to process the event
@@ -211,7 +210,6 @@
void stop() {
stopped = true;
- stopWatchdog();
add(KILL_PILL);
}