We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
test code:
package main import ( "fmt" "time" "github.com/muesli/cache2go" ) func main() { store := cache2go.Cache("test") store.AddAboutToDeleteItemCallback(func(v *cache2go.CacheItem) { fmt.Println("delete:", v) }) key := "test1" store.Add(key, time.Second*1800, "asdfasdfasd") fmt.Println("fitst delete:") store.Delete(key) store.Add(key, time.Second*1800, "asdfasdfasd") go func() { time.Sleep(time.Second * 2) fmt.Println("goroutine delete:") store.Foreach(func(key interface{}, v *cache2go.CacheItem) { fmt.Println("start") store.Delete(key) fmt.Println("end") }) }() time.Sleep(time.Second * 10) }
Foreach polls for all, while Rlock is released only after the Foreach execution completes, resulting in a deadlock when deleted in Foreach
The text was updated successfully, but these errors were encountered:
This error should be said that the user's use is not correct or the package design flaw itself?
Sorry, something went wrong.
test code: package main import ( "fmt" "time" "github.com/muesli/cache2go" ) func main() { store := cache2go.Cache("test") store.AddAboutToDeleteItemCallback(func(v *cache2go.CacheItem) { fmt.Println("delete:", v) }) key := "test1" store.Add(key, time.Second*1800, "asdfasdfasd") fmt.Println("fitst delete:") store.Delete(key) store.Add(key, time.Second*1800, "asdfasdfasd") go func() { time.Sleep(time.Second * 2) fmt.Println("goroutine delete:") store.Foreach(func(key interface{}, v *cache2go.CacheItem) { fmt.Println("start") store.Delete(key) fmt.Println("end") }) }() time.Sleep(time.Second * 10) } Foreach polls for all, while Rlock is released only after the Foreach execution completes, resulting in a deadlock when deleted in Foreach
Yes,I try it and get a deadlock,trans func may not use Lock or RLock
merge PR #48
No branches or pull requests
test code:
Foreach polls for all, while Rlock is released only after the Foreach execution completes, resulting in a deadlock when deleted in Foreach
The text was updated successfully, but these errors were encountered: