aboutsummaryrefslogtreecommitdiff
path: root/weed/util
diff options
context:
space:
mode:
Diffstat (limited to 'weed/util')
-rw-r--r--weed/util/log_buffer/log_read.go10
1 files changed, 9 insertions, 1 deletions
diff --git a/weed/util/log_buffer/log_read.go b/weed/util/log_buffer/log_read.go
index c3dd0f288..0d044fc14 100644
--- a/weed/util/log_buffer/log_read.go
+++ b/weed/util/log_buffer/log_read.go
@@ -66,9 +66,17 @@ func (logBuffer *LogBuffer) LoopProcessLogData(readerName string, startPosition
isDone = true
return
}
+ logBuffer.RLock()
lastTsNs := logBuffer.LastTsNs
- for lastTsNs == logBuffer.LastTsNs {
+ logBuffer.RUnlock()
+ loopTsNs := lastTsNs // make a copy
+
+ for lastTsNs == loopTsNs {
if waitForDataFn() {
+ // Update loopTsNs and loop again
+ logBuffer.RLock()
+ loopTsNs = logBuffer.LastTsNs
+ logBuffer.RUnlock()
continue
} else {
isDone = true