Madan Jampani
Committed by Gerrit Code Review

ONOS-1981: Move expensive work off of event loop thread

Change-Id: I200d9b727a7d501d5b055574ddb0907b8f4756a2
...@@ -613,11 +613,7 @@ public class DeviceManager ...@@ -613,11 +613,7 @@ public class DeviceManager
613 } 613 }
614 } 614 }
615 615
616 - // Intercepts mastership events 616 + private void handleMastershipEvent(MastershipEvent event) {
617 - private class InternalMastershipListener implements MastershipListener {
618 -
619 - @Override
620 - public void event(MastershipEvent event) {
621 if (event.type() != MastershipEvent.Type.MASTER_CHANGED) { 617 if (event.type() != MastershipEvent.Type.MASTER_CHANGED) {
622 // Don't care if backup list changed. 618 // Don't care if backup list changed.
623 return; 619 return;
...@@ -664,6 +660,20 @@ public class DeviceManager ...@@ -664,6 +660,20 @@ public class DeviceManager
664 log.debug("Device is not yet/no longer in the store: {}", did); 660 log.debug("Device is not yet/no longer in the store: {}", did);
665 } 661 }
666 } 662 }
663 +
664 + // Intercepts mastership events
665 + private class InternalMastershipListener implements MastershipListener {
666 +
667 + @Override
668 + public void event(MastershipEvent event) {
669 + backgroundService.submit(() -> {
670 + try {
671 + handleMastershipEvent(event);
672 + } catch (Exception e) {
673 + log.warn("Failed to handle {}", event, e);
674 + }
675 + });
676 + }
667 } 677 }
668 678
669 // Store delegate to re-post events emitted from the store. 679 // Store delegate to re-post events emitted from the store.
......