Browse Source

Embeds the mutex since it covers all fields.

pull/2973/head
James Phillips 8 years ago
parent
commit
4a234db33c
No known key found for this signature in database
GPG Key ID: 77183E682AC5FC11
  1. 19
      consul/state/tombstone_gc.go

19
consul/state/tombstone_gc.go

@ -34,8 +34,7 @@ type TombstoneGC struct {
// expireCh is used to stream expiration to the leader for processing.
expireCh chan uint64
// lock is used to ensure safe access to all the fields.
lock sync.Mutex
sync.Mutex
}
// expireInterval is used to track the maximum index to expire in a given
@ -77,8 +76,8 @@ func (t *TombstoneGC) ExpireCh() <-chan uint64 {
// SetEnabled is used to control if the tombstone GC is
// enabled. Should only be enabled by the leader node.
func (t *TombstoneGC) SetEnabled(enabled bool) {
t.lock.Lock()
defer t.lock.Unlock()
t.Lock()
defer t.Unlock()
if enabled == t.enabled {
return
}
@ -100,8 +99,8 @@ func (t *TombstoneGC) SetEnabled(enabled bool) {
func (t *TombstoneGC) Hint(index uint64) {
expires := t.nextExpires()
t.lock.Lock()
defer t.lock.Unlock()
t.Lock()
defer t.Unlock()
if !t.enabled {
return
}
@ -127,8 +126,8 @@ func (t *TombstoneGC) Hint(index uint64) {
// PendingExpiration is used to check if any expirations are pending.
func (t *TombstoneGC) PendingExpiration() bool {
t.lock.Lock()
defer t.lock.Unlock()
t.Lock()
defer t.Unlock()
return len(t.expires) > 0
}
@ -145,8 +144,8 @@ func (t *TombstoneGC) nextExpires() time.Time {
// expireTime is used to expire the entries at the given time.
func (t *TombstoneGC) expireTime(expires time.Time) {
t.lock.Lock()
defer t.lock.Unlock()
t.Lock()
defer t.Unlock()
// Get the maximum index and clear the entry. It's possible that the GC
// has been shut down while this timer fired and got blocked on the lock,

Loading…
Cancel
Save