mirror of
https://github.com/tailscale/tailscale.git
synced 2025-12-01 17:49:02 +00:00
tka: remove an unnecessary l variable
We can embed the `sync.Mutex` directly into `Mem`, allowing us to delete an `l` variable. See http://go/no-ell Updates #cleanup
This commit is contained in:
@@ -82,7 +82,7 @@ type CompactableChonk interface {
|
|||||||
//
|
//
|
||||||
// Mem implements the Chonk interface.
|
// Mem implements the Chonk interface.
|
||||||
type Mem struct {
|
type Mem struct {
|
||||||
l sync.RWMutex
|
sync.RWMutex
|
||||||
aums map[AUMHash]AUM
|
aums map[AUMHash]AUM
|
||||||
parentIndex map[AUMHash][]AUMHash
|
parentIndex map[AUMHash][]AUMHash
|
||||||
|
|
||||||
@@ -90,23 +90,23 @@ type Mem struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *Mem) SetLastActiveAncestor(hash AUMHash) error {
|
func (c *Mem) SetLastActiveAncestor(hash AUMHash) error {
|
||||||
c.l.Lock()
|
c.Lock()
|
||||||
defer c.l.Unlock()
|
defer c.Unlock()
|
||||||
c.lastActiveAncestor = &hash
|
c.lastActiveAncestor = &hash
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Mem) LastActiveAncestor() (*AUMHash, error) {
|
func (c *Mem) LastActiveAncestor() (*AUMHash, error) {
|
||||||
c.l.RLock()
|
c.RLock()
|
||||||
defer c.l.RUnlock()
|
defer c.RUnlock()
|
||||||
return c.lastActiveAncestor, nil
|
return c.lastActiveAncestor, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Heads returns AUMs for which there are no children. In other
|
// Heads returns AUMs for which there are no children. In other
|
||||||
// words, the latest AUM in all chains (the 'leaf').
|
// words, the latest AUM in all chains (the 'leaf').
|
||||||
func (c *Mem) Heads() ([]AUM, error) {
|
func (c *Mem) Heads() ([]AUM, error) {
|
||||||
c.l.RLock()
|
c.RLock()
|
||||||
defer c.l.RUnlock()
|
defer c.RUnlock()
|
||||||
out := make([]AUM, 0, 6)
|
out := make([]AUM, 0, 6)
|
||||||
|
|
||||||
// An AUM is a 'head' if there are no nodes for which it is the parent.
|
// An AUM is a 'head' if there are no nodes for which it is the parent.
|
||||||
@@ -120,8 +120,8 @@ func (c *Mem) Heads() ([]AUM, error) {
|
|||||||
|
|
||||||
// AUM returns the AUM with the specified digest.
|
// AUM returns the AUM with the specified digest.
|
||||||
func (c *Mem) AUM(hash AUMHash) (AUM, error) {
|
func (c *Mem) AUM(hash AUMHash) (AUM, error) {
|
||||||
c.l.RLock()
|
c.RLock()
|
||||||
defer c.l.RUnlock()
|
defer c.RUnlock()
|
||||||
aum, ok := c.aums[hash]
|
aum, ok := c.aums[hash]
|
||||||
if !ok {
|
if !ok {
|
||||||
return AUM{}, os.ErrNotExist
|
return AUM{}, os.ErrNotExist
|
||||||
@@ -132,8 +132,8 @@ func (c *Mem) AUM(hash AUMHash) (AUM, error) {
|
|||||||
// ChildAUMs returns all AUMs with a specified previous
|
// ChildAUMs returns all AUMs with a specified previous
|
||||||
// AUM hash.
|
// AUM hash.
|
||||||
func (c *Mem) ChildAUMs(prevAUMHash AUMHash) ([]AUM, error) {
|
func (c *Mem) ChildAUMs(prevAUMHash AUMHash) ([]AUM, error) {
|
||||||
c.l.RLock()
|
c.RLock()
|
||||||
defer c.l.RUnlock()
|
defer c.RUnlock()
|
||||||
out := make([]AUM, 0, 6)
|
out := make([]AUM, 0, 6)
|
||||||
for _, entry := range c.parentIndex[prevAUMHash] {
|
for _, entry := range c.parentIndex[prevAUMHash] {
|
||||||
out = append(out, c.aums[entry])
|
out = append(out, c.aums[entry])
|
||||||
@@ -147,8 +147,8 @@ func (c *Mem) ChildAUMs(prevAUMHash AUMHash) ([]AUM, error) {
|
|||||||
// as the rest of the TKA implementation assumes that only
|
// as the rest of the TKA implementation assumes that only
|
||||||
// verified AUMs are stored.
|
// verified AUMs are stored.
|
||||||
func (c *Mem) CommitVerifiedAUMs(updates []AUM) error {
|
func (c *Mem) CommitVerifiedAUMs(updates []AUM) error {
|
||||||
c.l.Lock()
|
c.Lock()
|
||||||
defer c.l.Unlock()
|
defer c.Unlock()
|
||||||
if c.aums == nil {
|
if c.aums == nil {
|
||||||
c.parentIndex = make(map[AUMHash][]AUMHash, 64)
|
c.parentIndex = make(map[AUMHash][]AUMHash, 64)
|
||||||
c.aums = make(map[AUMHash]AUM, 64)
|
c.aums = make(map[AUMHash]AUM, 64)
|
||||||
|
|||||||
Reference in New Issue
Block a user