summaryrefslogtreecommitdiff
path: root/vendor/github.com/quasoft/memstore/cache.go
diff options
context:
space:
mode:
authorLibravatar Tobi Smethurst <31960611+tsmethurst@users.noreply.github.com>2021-08-12 21:03:24 +0200
committerLibravatar GitHub <noreply@github.com>2021-08-12 21:03:24 +0200
commit98263a7de64269898a2f81207e38943b5c8e8653 (patch)
tree743c90f109a6c5d27832d1dcef2388d939f0f77a /vendor/github.com/quasoft/memstore/cache.go
parentText duplication fix (#137) (diff)
downloadgotosocial-98263a7de64269898a2f81207e38943b5c8e8653.tar.xz
Grand test fixup (#138)
* start fixing up tests * fix up tests + automate with drone * fiddle with linting * messing about with drone.yml * some more fiddling * hmmm * add cache * add vendor directory * verbose * ci updates * update some little things * update sig
Diffstat (limited to 'vendor/github.com/quasoft/memstore/cache.go')
-rw-r--r--vendor/github.com/quasoft/memstore/cache.go40
1 files changed, 40 insertions, 0 deletions
diff --git a/vendor/github.com/quasoft/memstore/cache.go b/vendor/github.com/quasoft/memstore/cache.go
new file mode 100644
index 000000000..a61f29621
--- /dev/null
+++ b/vendor/github.com/quasoft/memstore/cache.go
@@ -0,0 +1,40 @@
+package memstore
+
+import (
+ "sync"
+)
+
+type cache struct {
+ data map[string]valueType
+ mutex sync.RWMutex
+}
+
+func newCache() *cache {
+ return &cache{
+ data: make(map[string]valueType),
+ }
+}
+
+func (c *cache) value(name string) (valueType, bool) {
+ c.mutex.RLock()
+ defer c.mutex.RUnlock()
+
+ v, ok := c.data[name]
+ return v, ok
+}
+
+func (c *cache) setValue(name string, value valueType) {
+ c.mutex.Lock()
+ defer c.mutex.Unlock()
+
+ c.data[name] = value
+}
+
+func (c *cache) delete(name string) {
+ c.mutex.Lock()
+ defer c.mutex.Unlock()
+
+ if _, ok := c.data[name]; ok {
+ delete(c.data, name)
+ }
+}