add locking when adjusting topology

This commit is contained in:
Chris Lu 2012-11-13 12:13:40 -08:00
parent 6f606bb350
commit 9782ace1bd

View file

@ -7,6 +7,7 @@ import (
"pkg/operation"
"pkg/storage"
"pkg/topology"
"sync"
)
/*
@ -22,6 +23,8 @@ type VolumeGrowth struct {
copy2factor int
copy3factor int
copyAll int
accessLock sync.Mutex
}
func NewDefaultVolumeGrowth() *VolumeGrowth {
@ -46,6 +49,9 @@ func (vg *VolumeGrowth) GrowByType(repType storage.ReplicationType, topo *topolo
return 0, errors.New("Unknown Replication Type!")
}
func (vg *VolumeGrowth) GrowByCountAndType(count int, repType storage.ReplicationType, topo *topology.Topology) (counter int, err error) {
vg.accessLock.Lock()
defer vg.accessLock.Unlock()
counter = 0
switch repType {
case storage.Copy000: