From fff4fbf0c70321c6c5d99897cf181d7721387c65 Mon Sep 17 00:00:00 2001 From: helloJetBase-tech <178346048+marktech0813@users.noreply.github.com> Date: Wed, 5 Nov 2025 05:22:14 +0200 Subject: [PATCH] Fix--tcp_mojifinder.py crashes on empty search result #61 I updated 21-async/mojifinder/tcp_mojifinder.py so search now builds a list of response lines and guards the writelines call, preventing any edge-case crash when there are no matches. --- 21-async/mojifinder/tcp_mojifinder.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/21-async/mojifinder/tcp_mojifinder.py b/21-async/mojifinder/tcp_mojifinder.py index 4da7188..5daf2fc 100755 --- a/21-async/mojifinder/tcp_mojifinder.py +++ b/21-async/mojifinder/tcp_mojifinder.py @@ -43,9 +43,10 @@ async def search(query: str, # <1> index: InvertedIndex, writer: asyncio.StreamWriter) -> int: chars = index.search(query) # <2> - lines = (line.encode() + CRLF for line # <3> - in format_results(chars)) - writer.writelines(lines) # <4> + lines = [line.encode() + CRLF for line # <3> + in format_results(chars)] + if lines: + writer.writelines(lines) # <4> await writer.drain() # <5> status_line = f'{"─" * 66} {len(chars)} found' # <6> writer.write(status_line.encode() + CRLF)