1
0
Fork 0

fixed LogBuffer in case of too many messages (#2690)

This commit is contained in:
Frank Celler 2017-06-28 20:59:17 +02:00 committed by GitHub
parent 87e4e09996
commit 8f666990c3
2 changed files with 7 additions and 4 deletions

View File

@ -1,6 +1,8 @@
devel
-----
* fix log output in the front-end, it stop of too many messages
* potentially fixed issue #2559: Duplicate _key generated on insertion
* fix invalid results (too many) when a skipping LIMIT was used for a

View File

@ -57,15 +57,16 @@ std::vector<LogBuffer> LogBuffer::entries(LogLevel level, uint64_t start,
MUTEX_LOCKER(guard, LogBuffer::_ringBufferLock);
size_t s = 0;
size_t e;
size_t n;
if (LogBuffer::_ringBufferId >= LogBuffer::RING_BUFFER_SIZE) {
s = e = (LogBuffer::_ringBufferId + 1) % LogBuffer::RING_BUFFER_SIZE;
s = (LogBuffer::_ringBufferId) % LogBuffer::RING_BUFFER_SIZE;
n = LogBuffer::RING_BUFFER_SIZE;
} else {
e = static_cast<size_t>(LogBuffer::_ringBufferId);
n = static_cast<size_t>(LogBuffer::_ringBufferId);
}
for (size_t i = s; i != e;) {
for (size_t i = s; 0 < n; --n) {
LogBuffer& p = LogBuffer::_ringBuffer[i];
if (p._id >= start) {