From e7cbe152921fee9125e45c90a6854ce8afa5bdfd Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Sun, 31 Oct 2021 15:17:57 +0100 Subject: [PATCH] we probably don't need this lock --- logFileModel.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/logFileModel.py b/logFileModel.py index ddfe6e5..04decc3 100644 --- a/logFileModel.py +++ b/logFileModel.py @@ -19,7 +19,7 @@ class LogFileModel: def __init__(self, file: str, settings: Settings): self.settings = settings self._file = os.path.realpath(file) - self._lock = threading.RLock() + # self._lock = threading.RLock() def highlighters(self): return Highlighting.read_config(self.settings) @@ -50,7 +50,8 @@ class LogFileModel: return file_name def read_range(self, start_byte: int, end_byte: int): - with self._lock: + # with self._lock: + if True: with open(self._file, 'rb') as f: f.seek(start_byte) bytes = f.read(end_byte - start_byte) @@ -58,7 +59,8 @@ class LogFileModel: def write_range(self, start_byte: int, end_byte: int, file: str): # print("write range: %d - %d -> %s" % (start_byte, end_byte, file)) - with self._lock, open(self._file, 'rb') as source, open(file, "w+b") as target: + # with self._lock, open(self._file, 'rb') as source, open(file, "w+b") as target: + with open(self._file, 'rb') as source, open(file, "w+b") as target: offset = start_byte source.seek(offset) while offset < end_byte: @@ -75,14 +77,17 @@ class LogFileModel: lines_to_find = lines + abs(scroll_lines) lines_to_return = math.ceil(lines) - # start = time.time() - with self._lock: - # print("data lock acquision %.4f" % (time.time() -start)) + start = time.time() + # with self._lock: + if True: + duration = time.time() - start + if duration > 10: + print("data lock acquision %.4f" % ()) # TODO handle lines longer than 4096 bytes # TODO abort file open after a few secons: https://docs.python.org/3/library/signal.html#example with open(self._file, 'rb') as f: offset = min(byte_offset, self.byte_count()) - #print("offset: %s byte_count: %d" % (offset, self.byte_count())) + # print("offset: %s byte_count: %d" % (offset, self.byte_count())) offset = max(0, offset - self.settings.max_line_length()) eof_reached = True