please refactor CircuitBreaker.syncExecutionContext to use the same thing