fix: bugs

This commit is contained in:
hehesheng 2024-06-03 21:44:46 +08:00
parent 6b7067a8d0
commit 247c213599
2 changed files with 7 additions and 7 deletions

View File

@ -60,7 +60,7 @@ class MediaChunkHolder(object):
self.callback = callback
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]):
if isinstance(other, int):
@ -143,13 +143,12 @@ class MediaChunkHolder(object):
self.callback = None
callback(self)
def can_store_in_disk(self) -> bool:
def try_clear_waiter_and_requester(self) -> bool:
if not self.is_completed():
return False
if not self.is_disconneted():
return False
# clear all waiter and requester
self.notify_waiters()
self.requester.clear()
return True
@ -264,8 +263,7 @@ class MediaChunkHolderManager(object):
self.current_cache_size += info.length
def set_media_chunk(self, chunk: MediaChunkHolder) -> None:
can_store = chunk.can_store_in_disk()
if can_store:
if chunk.is_completed():
self.disk_chunk_cache.set(chunk.chunk_id, chunk)
else:
self.incompleted_chunk[chunk.chunk_id] = chunk

View File

@ -315,6 +315,8 @@ class TgFileSystemClient(object):
else:
media_holder.append_chunk_mem(chunk)
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()
break
if await media_holder.is_disconneted():