From c7a5e22471094608ac6f83237db0b68fba403ae5 Mon Sep 17 00:00:00 2001 From: matst80 Date: Sun, 10 Nov 2024 12:57:44 +0100 Subject: [PATCH] better abstraction --- synced-pool.go | 37 +++++++++++++++---------------------- 1 file changed, 15 insertions(+), 22 deletions(-) diff --git a/synced-pool.go b/synced-pool.go index 60d99d8..6e3f589 100644 --- a/synced-pool.go +++ b/synced-pool.go @@ -454,44 +454,37 @@ func (p *SyncedPool) AddRemote(address string) error { return p.addRemoteHost(address, &remote) } -func (p *SyncedPool) Process(id CartId, messages ...Message) ([]byte, error) { - // check if local grain exists +func (p *SyncedPool) getGrainPool(id CartId) (GrainPool, error) { _, ok := p.local.grains[id] if !ok { // check if remote grain exists p.mu.RLock() - remoteGrain, ok := p.remoteIndex[id] + remotePool, ok := p.remoteIndex[id] p.mu.RUnlock() if ok { remoteLookupCount.Inc() - return remoteGrain.Process(id, messages...) + return remotePool, nil } err := p.OwnerChanged(id, p.Hostname) if err != nil { return nil, err } } + return p.local, nil +} - return p.local.Process(id, messages...) +func (p *SyncedPool) Process(id CartId, messages ...Message) ([]byte, error) { + pool, err := p.getGrainPool(id) + if err != nil { + return nil, err + } + return pool.Process(id, messages...) } func (p *SyncedPool) Get(id CartId) ([]byte, error) { - // check if local grain exists - _, ok := p.local.grains[id] - if !ok { - // check if remote grain exists - p.mu.RLock() - remoteGrain, ok := p.remoteIndex[id] - p.mu.RUnlock() - if ok { - remoteLookupCount.Inc() - return remoteGrain.Get(id) - } - err := p.OwnerChanged(id, p.Hostname) - if err != nil { - return nil, err - } + pool, err := p.getGrainPool(id) + if err != nil { + return nil, err } - - return p.local.Get(id) + return pool.Get(id) }