code: func GetCircuit(name string) (*CircuitBreaker, bool, error) {
  	circuitBreakersMutex.RLock()
  	_, ok := circuitBreakers[name]
  	if !ok {
  		circuitBreakersMutex.RUnlock()
  		circuitBreakersMutex.Lock()
  		defer circuitBreakersMutex.Unlock()
  		// because we released the rlock before we obtained the exclusive lock,
  		// we need to double check that some other thread didn't beat us to
  		// creation.
  		if cb, ok := circuitBreakers[name]; ok {
  			return cb, false, nil
  		}
  		circuitBreakers[name] = newCircuitBreaker(name)
  	} else {
  		defer circuitBreakersMutex.RUnlock()
  	}
  
  	return circuitBreakers[name], !ok, nil
  }
docs: // GetCircuit returns the circuit for the given command and whether this call created it.