mirror of https://github.com/k3s-io/k3s
Make replication controller synchronizations independent.
parent
cb28f25b1b
commit
ae0baf3fab
|
@ -19,6 +19,7 @@ package controller
|
|||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
|
||||
|
@ -203,10 +204,16 @@ func (rm *ReplicationManager) synchronize() {
|
|||
glog.Errorf("Synchronization error: %v (%#v)", err, err)
|
||||
return
|
||||
}
|
||||
for _, controllerSpec := range controllerSpecs {
|
||||
err = rm.syncHandler(controllerSpec)
|
||||
if err != nil {
|
||||
glog.Errorf("Error synchronizing: %#v", err)
|
||||
}
|
||||
wg := sync.WaitGroup{}
|
||||
wg.Add(len(controllerSpecs))
|
||||
for ix := range controllerSpecs {
|
||||
go func(ix int) {
|
||||
defer wg.Done()
|
||||
err := rm.syncHandler(controllerSpecs[ix])
|
||||
if err != nil {
|
||||
glog.Errorf("Error synchronizing: %#v", err)
|
||||
}
|
||||
}(ix)
|
||||
}
|
||||
wg.Wait()
|
||||
}
|
||||
|
|
|
@ -21,6 +21,7 @@ import (
|
|||
"fmt"
|
||||
"net/http/httptest"
|
||||
"reflect"
|
||||
"sync"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
|
@ -41,13 +42,18 @@ func makeURL(suffix string) string {
|
|||
type FakePodControl struct {
|
||||
controllerSpec []api.ReplicationController
|
||||
deletePodID []string
|
||||
lock sync.Mutex
|
||||
}
|
||||
|
||||
func (f *FakePodControl) createReplica(spec api.ReplicationController) {
|
||||
f.lock.Lock()
|
||||
defer f.lock.Unlock()
|
||||
f.controllerSpec = append(f.controllerSpec, spec)
|
||||
}
|
||||
|
||||
func (f *FakePodControl) deletePod(podID string) error {
|
||||
f.lock.Lock()
|
||||
defer f.lock.Unlock()
|
||||
f.deletePodID = append(f.deletePodID, podID)
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue