diff --git a/components/engine/daemon/logger/journald/read.go b/components/engine/daemon/logger/journald/read.go index 541fab7055..9ccf3d4579 100644 --- a/components/engine/daemon/logger/journald/read.go +++ b/components/engine/daemon/logger/journald/read.go @@ -246,6 +246,8 @@ func (s *journald) followJournal(logWatcher *logger.LogWatcher, config logger.Re s.readers.readers[logWatcher] = logWatcher s.readers.mu.Unlock() + newCursor := make(chan *C.char) + go func() { for { // Keep copying journal data out until we're notified to stop @@ -274,6 +276,7 @@ func (s *journald) followJournal(logWatcher *logger.LogWatcher, config logger.Re s.readers.mu.Unlock() C.sd_journal_close(j) close(logWatcher.Msg) + newCursor <- cursor }() // Wait until we're told to stop. @@ -283,6 +286,8 @@ func (s *journald) followJournal(logWatcher *logger.LogWatcher, config logger.Re C.close(pfd[1]) } + cursor = <-newCursor + return cursor }