From 247c21359950f8f305a9ac8e4cbc60f5a9a77d16 Mon Sep 17 00:00:00 2001 From: hehesheng Date: Mon, 3 Jun 2024 21:44:46 +0800 Subject: [PATCH] fix: bugs --- backend/MediaCacheManager.py | 12 +++++------- backend/TgFileSystemClient.py | 2 ++ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/backend/MediaCacheManager.py b/backend/MediaCacheManager.py index 0571981..9ac6064 100644 --- a/backend/MediaCacheManager.py +++ b/backend/MediaCacheManager.py @@ -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,14 +143,13 @@ 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() - return True + self.requester.clear() + return True class MediaChunkHolderManager(object): @@ -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 diff --git a/backend/TgFileSystemClient.py b/backend/TgFileSystemClient.py index 496355a..c2e6bb1 100644 --- a/backend/TgFileSystemClient.py +++ b/backend/TgFileSystemClient.py @@ -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():