public void AddCanController(CanController controller) { lock (_canControllersMap) { _canControllersMap[controller._controllerId] = controller; } }
public bool OnEvent(BaseEvent ev) { var canMessageEvent = (CanMessageEvent)ev; CanController device = null; lock (_canControllersMap) { if (_canControllersMap.Contains(canMessageEvent.ControllerIndex)) { device = (CanController)_canControllersMap[canMessageEvent.ControllerIndex]; } } // Avoid calling this under a lock to prevent a potential lock inversion. if (device != null) { device.OnCanMessageReceivedInternal(canMessageEvent.Event); } return(true); }