private void OnStateVariableChanged(DvStateVariable variable)
        {
            lock (_serverData.SyncObj)
            {
                // Unicast event notifications
                DvService service = variable.ParentService;
                foreach (EndpointConfiguration config in _serverData.UPnPEndPoints)
                {
                    foreach (EventSubscription subscription in config.EventSubscriptions)
                    {
                        if (subscription.Service == service && !subscription.IsDisposed)
                        {
                            subscription.StateVariableChanged(variable);
                        }
                    }
                }

                // Multicast event notifications
                if (variable.Multicast)
                {
                    EventingState eventingState = _serverData.GetMulticastEventKey(variable.ParentService);
                    if (eventingState.EventKey == 0)
                    {
                        // Avoid sending "normal" change events before the initial event was sent
                        return;
                    }
                    eventingState.ModerateChangeEvent(variable);
                    ScheduleMulticastEvents();
                }
            }
        }