diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index 7d0d429e997..4dad697881f 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -29,6 +29,7 @@ import ( "sort" "strings" "sync" + "sync/atomic" "time" "github.com/golang/glog" @@ -70,7 +71,6 @@ import ( "k8s.io/kubernetes/pkg/securitycontext" "k8s.io/kubernetes/pkg/types" "k8s.io/kubernetes/pkg/util" - "k8s.io/kubernetes/pkg/util/atomic" "k8s.io/kubernetes/pkg/util/bandwidth" utilerrors "k8s.io/kubernetes/pkg/util/errors" utilexec "k8s.io/kubernetes/pkg/util/exec" diff --git a/pkg/kubelet/pleg/generic.go b/pkg/kubelet/pleg/generic.go index 3685be30dfb..e0340bdd106 100644 --- a/pkg/kubelet/pleg/generic.go +++ b/pkg/kubelet/pleg/generic.go @@ -18,6 +18,7 @@ package pleg import ( "fmt" + "sync/atomic" "time" "github.com/golang/glog" @@ -25,7 +26,6 @@ import ( "k8s.io/kubernetes/pkg/kubelet/metrics" "k8s.io/kubernetes/pkg/types" "k8s.io/kubernetes/pkg/util" - "k8s.io/kubernetes/pkg/util/atomic" "k8s.io/kubernetes/pkg/util/sets" "k8s.io/kubernetes/pkg/util/wait" ) diff --git a/pkg/util/atomic/value.go b/pkg/util/atomic/value.go deleted file mode 100644 index a9bc8cd813c..00000000000 --- a/pkg/util/atomic/value.go +++ /dev/null @@ -1,42 +0,0 @@ -/* -Copyright 2015 The Kubernetes Authors All rights reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package atomic - -import ( - "sync" -) - -// TODO(ArtfulCoder) -// sync/atomic/Value was added in golang 1.4 -// Once support is dropped for go 1.3, this type must be deprecated in favor of sync/atomic/Value. -// The functions are named Load/Store to match sync/atomic/Value function names. -type Value struct { - value interface{} - valueMutex sync.RWMutex -} - -func (at *Value) Store(val interface{}) { - at.valueMutex.Lock() - defer at.valueMutex.Unlock() - at.value = val -} - -func (at *Value) Load() interface{} { - at.valueMutex.RLock() - defer at.valueMutex.RUnlock() - return at.value -} diff --git a/pkg/util/atomic/value_test.go b/pkg/util/atomic/value_test.go deleted file mode 100644 index 052b350828b..00000000000 --- a/pkg/util/atomic/value_test.go +++ /dev/null @@ -1,52 +0,0 @@ -/* -Copyright 2014 The Kubernetes Authors All rights reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package atomic - -import ( - "testing" - "time" - - "k8s.io/kubernetes/pkg/util/wait" -) - -func ExpectValue(t *testing.T, atomicValue *Value, expectedValue interface{}) { - actualValue := atomicValue.Load() - if actualValue != expectedValue { - t.Errorf("Expected to find %v, found %v", expectedValue, actualValue) - } - ch := make(chan interface{}) - go func() { - ch <- atomicValue.Load() - }() - select { - case actualValue = <-ch: - if actualValue != expectedValue { - t.Errorf("Expected to find %v, found %v", expectedValue, actualValue) - return - } - case <-time.After(wait.ForeverTestTimeout): - t.Error("Value could not be read") - return - } -} - -func TestAtomicValue(t *testing.T) { - atomicValue := &Value{} - ExpectValue(t, atomicValue, nil) - atomicValue.Store(10) - ExpectValue(t, atomicValue, 10) -}