Task ICircuitBreaker.Open(Exception exception, ICircuitBreakerBehavior behavior, IEnumerator <TimeSpan> timeoutEnumerator) { if (timeoutEnumerator == null) { timeoutEnumerator = _settings.ResetTimeout.GetEnumerator(); } var openBehavior = new OpenBehavior(this, exception, timeoutEnumerator); Interlocked.CompareExchange(ref _behavior, openBehavior, behavior); if (_behavior == openBehavior) { return(_settings.Router?.PublishCircuitBreakerOpened(exception) ?? TaskUtil.Completed); } return(TaskUtil.Completed); }
private void DoorOpen(NetworkMessage msg) { OpenBehavior ob = GameObject.Find(msg.ReadMessage <StringMessage>().value).GetComponent <OpenBehavior>(); ob.DoorOpen(); }