diff --git a/daemon/logger/journald/read.go b/daemon/logger/journald/read.go index f73ab9183973a..9b896e0dc75ec 100644 --- a/daemon/logger/journald/read.go +++ b/daemon/logger/journald/read.go @@ -249,6 +249,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 @@ -276,6 +278,7 @@ func (s *journald) followJournal(logWatcher *logger.LogWatcher, config logger.Re delete(s.readers.readers, logWatcher) s.readers.mu.Unlock() close(logWatcher.Msg) + newCursor <- cursor }() // Wait until we're told to stop. @@ -285,6 +288,8 @@ func (s *journald) followJournal(logWatcher *logger.LogWatcher, config logger.Re C.close(pfd[1]) } + cursor = <-newCursor + return cursor }