diff options
author | 2024-02-09 12:38:51 +0100 | |
---|---|---|
committer | 2024-02-09 11:38:51 +0000 | |
commit | 7a7746701df54decb4763ff2813bb9897a178ccf (patch) | |
tree | 2676d8c060618fffedde252887ea709de261d88c /internal/federation | |
parent | [feature/performance] sqlite pragma optimize on close (#2596) (diff) | |
download | gotosocial-7a7746701df54decb4763ff2813bb9897a178ccf.tar.xz |
[chore] Move `DoOnce` func wrapper to util (#2613)
Diffstat (limited to 'internal/federation')
-rw-r--r-- | internal/federation/dereferencing/account.go | 7 | ||||
-rw-r--r-- | internal/federation/dereferencing/emoji.go | 3 | ||||
-rw-r--r-- | internal/federation/dereferencing/status.go | 2 | ||||
-rw-r--r-- | internal/federation/dereferencing/util.go | 11 |
4 files changed, 7 insertions, 16 deletions
diff --git a/internal/federation/dereferencing/account.go b/internal/federation/dereferencing/account.go index d51d3078e..86ea9b7fd 100644 --- a/internal/federation/dereferencing/account.go +++ b/internal/federation/dereferencing/account.go @@ -37,6 +37,7 @@ import ( "github.com/superseriousbusiness/gotosocial/internal/log" "github.com/superseriousbusiness/gotosocial/internal/media" "github.com/superseriousbusiness/gotosocial/internal/transport" + "github.com/superseriousbusiness/gotosocial/internal/util" ) // accountUpToDate returns whether the given account model is both updateable (i.e. @@ -384,7 +385,7 @@ func (d *Dereferencer) enrichAccountSafely( // to safely defer in case of panic, while still // performing more granular unlocks when needed. unlock := d.state.FedLocks.Lock(uriStr) - unlock = doOnce(unlock) + unlock = util.DoOnce(unlock) defer unlock() // Perform status enrichment with passed vars. @@ -735,7 +736,7 @@ func (d *Dereferencer) fetchRemoteAccountAvatar(ctx context.Context, tsport tran // Acquire lock for derefs map. unlock := d.state.FedLocks.Lock(latestAcc.AvatarRemoteURL) - unlock = doOnce(unlock) + unlock = util.DoOnce(unlock) defer unlock() // Look for an existing dereference in progress. @@ -821,7 +822,7 @@ func (d *Dereferencer) fetchRemoteAccountHeader(ctx context.Context, tsport tran // Acquire lock for derefs map. unlock := d.state.FedLocks.Lock(latestAcc.HeaderRemoteURL) - unlock = doOnce(unlock) + unlock = util.DoOnce(unlock) defer unlock() // Look for an existing dereference in progress. diff --git a/internal/federation/dereferencing/emoji.go b/internal/federation/dereferencing/emoji.go index 1bf19d2fd..009191780 100644 --- a/internal/federation/dereferencing/emoji.go +++ b/internal/federation/dereferencing/emoji.go @@ -28,6 +28,7 @@ import ( "github.com/superseriousbusiness/gotosocial/internal/id" "github.com/superseriousbusiness/gotosocial/internal/log" "github.com/superseriousbusiness/gotosocial/internal/media" + "github.com/superseriousbusiness/gotosocial/internal/util" ) func (d *Dereferencer) GetRemoteEmoji(ctx context.Context, requestingUsername string, remoteURL string, shortcode string, domain string, id string, emojiURI string, ai *media.AdditionalEmojiInfo, refresh bool) (*media.ProcessingEmoji, error) { @@ -44,7 +45,7 @@ func (d *Dereferencer) GetRemoteEmoji(ctx context.Context, requestingUsername st // Acquire lock for derefs map. unlock := d.state.FedLocks.Lock(remoteURL) - unlock = doOnce(unlock) + unlock = util.DoOnce(unlock) defer unlock() // first check if we're already processing this emoji diff --git a/internal/federation/dereferencing/status.go b/internal/federation/dereferencing/status.go index 56032f351..71cc5c530 100644 --- a/internal/federation/dereferencing/status.go +++ b/internal/federation/dereferencing/status.go @@ -295,7 +295,7 @@ func (d *Dereferencer) enrichStatusSafely( // to safely defer in case of panic, while still // performing more granular unlocks when needed. unlock := d.state.FedLocks.Lock(uriStr) - unlock = doOnce(unlock) + unlock = util.DoOnce(unlock) defer unlock() // Perform status enrichment with passed vars. diff --git a/internal/federation/dereferencing/util.go b/internal/federation/dereferencing/util.go index c37f2d82d..38622f6c1 100644 --- a/internal/federation/dereferencing/util.go +++ b/internal/federation/dereferencing/util.go @@ -23,17 +23,6 @@ import ( "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" ) -// doOnce wraps a function to only perform it once. -func doOnce(fn func()) func() { - var once int32 - return func() { - if once == 0 { - fn() - once = 1 - } - } -} - // pollChanged returns whether a poll has changed in way that // indicates that this should be an entirely new poll. i.e. if // the available options have changed, or the expiry has increased. |