fixed race conditions

Signed-off-by: Aleksandr Dubovikov <d.lexand@gmail.com>
This commit is contained in:
Aleksandr Dubovikov 2024-10-09 20:59:59 +02:00
parent 7fff56c758
commit f58da42718
3 changed files with 15 additions and 8 deletions

View file

@ -56,14 +56,14 @@ func makeUrlPreviewHandler(
go func() {
for {
t := time.Now().Unix()
urlPreviewCache.Lock()
for k, record := range urlPreviewCache.Records {
if record.Created < (t - int64(cfg.UrlPreviewCacheTime)) {
urlPreviewCache.Lock.Lock()
delete(urlPreviewCache.Records, k)
urlPreviewCache.Lock.Unlock()
}
}
time.Sleep(time.Duration(16) * time.Second)
urlPreviewCache.Unlock()
time.Sleep(time.Duration(60) * time.Second)
}
}()
@ -115,9 +115,9 @@ func makeUrlPreviewHandler(
Created: time.Now().Unix(),
Preview: urlPreviewCached,
}
urlPreviewCache.Lock.Lock()
urlPreviewCache.Lock()
urlPreviewCache.Records[pUrl] = urlPreviewCacheItem
defer urlPreviewCache.Lock.Unlock()
defer urlPreviewCache.Unlock()
}
}()
@ -155,9 +155,9 @@ func makeUrlPreviewHandler(
}
}
urlPreviewCache.Lock.Lock()
urlPreviewCache.Lock()
urlPreviewCache.Records[pUrl] = urlPreviewCacheItem
defer urlPreviewCache.Lock.Unlock()
defer urlPreviewCache.Unlock()
activeUrlPreviewRequests.Lock()
activeUrlPreviewRequests.Url[pUrl].Cond.Broadcast()