| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The LUCI Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed under the Apache License, Version 2.0 |
| 3 // found in the LICENSE file. | 3 // that can be found in the LICENSE file. |
| 4 | 4 |
| 5 package featureBreaker | 5 package featureBreaker |
| 6 | 6 |
| 7 import ( | 7 import ( |
| 8 "errors" | 8 "errors" |
| 9 "fmt" | 9 "fmt" |
| 10 "runtime" | 10 "runtime" |
| 11 "strings" | 11 "strings" |
| 12 "sync" | 12 "sync" |
| 13 ) | 13 ) |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 108 } | 108 } |
| 109 | 109 |
| 110 return f() | 110 return f() |
| 111 } | 111 } |
| 112 | 112 |
| 113 func (s *state) noBrokenFeatures() bool { | 113 func (s *state) noBrokenFeatures() bool { |
| 114 s.Lock() | 114 s.Lock() |
| 115 defer s.Unlock() | 115 defer s.Unlock() |
| 116 return len(s.broken) == 0 | 116 return len(s.broken) == 0 |
| 117 } | 117 } |
| OLD | NEW |