fix: bugs
This commit is contained in:
parent
6b7067a8d0
commit
247c213599
@ -60,7 +60,7 @@ class MediaChunkHolder(object):
|
|||||||
self.callback = callback
|
self.callback = callback
|
||||||
|
|
||||||
def __repr__(self) -> str:
|
def __repr__(self) -> str:
|
||||||
return f"MediaChunk,{self.info},len:{self.length}"
|
return f"MediaChunk,{self.info},unique_id:{self.unique_id}"
|
||||||
|
|
||||||
def __eq__(self, other: Union["MediaChunkHolder", ChunkInfo, int]):
|
def __eq__(self, other: Union["MediaChunkHolder", ChunkInfo, int]):
|
||||||
if isinstance(other, int):
|
if isinstance(other, int):
|
||||||
@ -143,14 +143,13 @@ class MediaChunkHolder(object):
|
|||||||
self.callback = None
|
self.callback = None
|
||||||
callback(self)
|
callback(self)
|
||||||
|
|
||||||
def can_store_in_disk(self) -> bool:
|
def try_clear_waiter_and_requester(self) -> bool:
|
||||||
if not self.is_completed():
|
if not self.is_completed():
|
||||||
return False
|
return False
|
||||||
if not self.is_disconneted():
|
|
||||||
return False
|
|
||||||
# clear all waiter and requester
|
# clear all waiter and requester
|
||||||
self.notify_waiters()
|
self.notify_waiters()
|
||||||
return True
|
self.requester.clear()
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
class MediaChunkHolderManager(object):
|
class MediaChunkHolderManager(object):
|
||||||
@ -264,8 +263,7 @@ class MediaChunkHolderManager(object):
|
|||||||
self.current_cache_size += info.length
|
self.current_cache_size += info.length
|
||||||
|
|
||||||
def set_media_chunk(self, chunk: MediaChunkHolder) -> None:
|
def set_media_chunk(self, chunk: MediaChunkHolder) -> None:
|
||||||
can_store = chunk.can_store_in_disk()
|
if chunk.is_completed():
|
||||||
if can_store:
|
|
||||||
self.disk_chunk_cache.set(chunk.chunk_id, chunk)
|
self.disk_chunk_cache.set(chunk.chunk_id, chunk)
|
||||||
else:
|
else:
|
||||||
self.incompleted_chunk[chunk.chunk_id] = chunk
|
self.incompleted_chunk[chunk.chunk_id] = chunk
|
||||||
|
@ -315,6 +315,8 @@ class TgFileSystemClient(object):
|
|||||||
else:
|
else:
|
||||||
media_holder.append_chunk_mem(chunk)
|
media_holder.append_chunk_mem(chunk)
|
||||||
if media_holder.is_completed():
|
if media_holder.is_completed():
|
||||||
|
if not media_holder.try_clear_waiter_and_requester():
|
||||||
|
logger.error("I think never run here.")
|
||||||
media_holder.set_done()
|
media_holder.set_done()
|
||||||
break
|
break
|
||||||
if await media_holder.is_disconneted():
|
if await media_holder.is_disconneted():
|
||||||
|
Loading…
x
Reference in New Issue
Block a user