mirror of
https://github.com/gofiber/fiber.git
synced 2025-05-31 11:52:41 +00:00
🩹 update mutex logic
Co-Authored-By: RW <7063188+ReneWerner87@users.noreply.github.com>
This commit is contained in:
parent
cf4f60e965
commit
f714660ca9
20
middleware/cache/store.go
vendored
20
middleware/cache/store.go
vendored
@ -21,30 +21,28 @@ type storage struct {
|
||||
}
|
||||
|
||||
func (s *storage) get(key string) (e *entry) {
|
||||
s.mux.Lock()
|
||||
defer s.mux.Lock()
|
||||
if s.cfg.Storage != nil {
|
||||
raw, err := s.cfg.Storage.Get(key)
|
||||
if err != nil || raw == nil {
|
||||
return
|
||||
return e
|
||||
}
|
||||
if _, err := e.UnmarshalMsg(raw); err != nil {
|
||||
return
|
||||
return e
|
||||
}
|
||||
body, err := s.cfg.Storage.Get(key + "_body")
|
||||
if err != nil || body == nil {
|
||||
return
|
||||
return e
|
||||
}
|
||||
e.body = body
|
||||
} else {
|
||||
s.mux.Lock()
|
||||
e = s.entries[key]
|
||||
s.mux.Lock()
|
||||
}
|
||||
return
|
||||
return e
|
||||
}
|
||||
|
||||
func (s *storage) set(key string, e *entry) {
|
||||
s.mux.Lock()
|
||||
defer s.mux.Lock()
|
||||
if s.cfg.Storage != nil {
|
||||
// seperate body since we dont want to encode big payloads
|
||||
body := e.body
|
||||
@ -55,17 +53,19 @@ func (s *storage) set(key string, e *entry) {
|
||||
_ = s.cfg.Storage.Set(key+"_body", body, s.cfg.Expiration)
|
||||
}
|
||||
} else {
|
||||
s.mux.Lock()
|
||||
s.entries[key] = e
|
||||
s.mux.Unlock()
|
||||
}
|
||||
}
|
||||
|
||||
func (s *storage) delete(key string) {
|
||||
s.mux.Lock()
|
||||
defer s.mux.Lock()
|
||||
if s.cfg.Storage != nil {
|
||||
_ = s.cfg.Storage.Delete(key)
|
||||
_ = s.cfg.Storage.Delete(key + "_body")
|
||||
} else {
|
||||
s.mux.Lock()
|
||||
delete(s.entries, key)
|
||||
s.mux.Unlock()
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user