mirror of
https://github.com/Ernous/TorrServerJellyfin.git
synced 2025-12-19 21:46:11 +05:00
fix bug with mutex lock in some threads
This commit is contained in:
@@ -23,7 +23,7 @@ type Reader struct {
|
||||
muPreload sync.Mutex
|
||||
}
|
||||
|
||||
func NewReader(file *torrent.File, cache *Cache) *Reader {
|
||||
func newReader(file *torrent.File, cache *Cache) *Reader {
|
||||
r := new(Reader)
|
||||
r.file = file
|
||||
r.Reader = file.NewReader()
|
||||
@@ -89,16 +89,11 @@ func (r *Reader) Close() error {
|
||||
r.mu.Lock()
|
||||
defer r.mu.Unlock()
|
||||
r.isClosed = true
|
||||
|
||||
r.cache.muReaders.Lock()
|
||||
delete(r.cache.readers, r)
|
||||
r.cache.muReaders.Unlock()
|
||||
|
||||
return r.Reader.Close()
|
||||
}
|
||||
|
||||
func (c *Cache) NewReader(file *torrent.File) *Reader {
|
||||
return NewReader(file, c)
|
||||
return newReader(file, c)
|
||||
}
|
||||
|
||||
func (c *Cache) Readers() int {
|
||||
@@ -112,3 +107,10 @@ func (c *Cache) Readers() int {
|
||||
}
|
||||
return len(c.readers)
|
||||
}
|
||||
|
||||
func (c *Cache) CloseReader(r *Reader) {
|
||||
r.cache.muReaders.Lock()
|
||||
r.Close()
|
||||
delete(r.cache.readers, r)
|
||||
r.cache.muReaders.Unlock()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user