From d839832ee6df320ba1469638f7949dfe85f2fb99 Mon Sep 17 00:00:00 2001 From: peri4 Date: Thu, 10 Jun 2021 20:05:23 +0300 Subject: [PATCH] PIBinaryLog recreate index performance patch --- libs/main/core/pibytearray.h | 2 +- libs/main/io_devices/pibinarylog.cpp | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/libs/main/core/pibytearray.h b/libs/main/core/pibytearray.h index 548a073c..f9c81938 100644 --- a/libs/main/core/pibytearray.h +++ b/libs/main/core/pibytearray.h @@ -312,7 +312,7 @@ PIP_EXPORT PIByteArray & operator >>(PIByteArray & s, PIByteArray & v); //! \relatesalso PIByteArray \brief Restore operator, see \ref PIByteArray_sec1 for details inline PIByteArray & operator >>(PIByteArray & s, PIByteArray::RawData v) { if (s.size_s() < v.s) { - printf("error with RawData %d < %d\n", s.size_s(), v.s); + printf("error with RawData %d < %d\n", (int)s.size_s(), v.s); assert(s.size_s() >= v.s); } if (v.s > 0) { diff --git a/libs/main/io_devices/pibinarylog.cpp b/libs/main/io_devices/pibinarylog.cpp index 1a8472dc..7d434d96 100644 --- a/libs/main/io_devices/pibinarylog.cpp +++ b/libs/main/io_devices/pibinarylog.cpp @@ -153,6 +153,7 @@ bool PIBinaryLog::openDevice() { bool PIBinaryLog::closeDevice() { stopThreadedRead(); pausemutex.unlock(); + logmutex.unlock(); moveIndex(-1); is_indexed = false; index.clear(); @@ -654,7 +655,9 @@ bool PIBinaryLog::createIndex() { llong cp = file.pos(); file.seekToBegin(); index.clear(); + index = PIVector(); index_pos.clear(); + index_pos = PIMap(); parseLog(&file, &binfo, &index); file.seek(cp); is_indexed = !index.isEmpty();