diff --git a/daemon/logger/journald/read.go b/daemon/logger/journald/read.go index c01b28ca34..2fbbfe175d 100644 --- a/daemon/logger/journald/read.go +++ b/daemon/logger/journald/read.go @@ -248,6 +248,9 @@ func (s *journald) followJournal(logWatcher *logger.LogWatcher, config logger.Re s.readers.mu.Lock() s.readers.readers[logWatcher] = logWatcher s.readers.mu.Unlock() + + newCursor := make(chan *C.char) + go func() { // Keep copying journal data out until we're notified to stop // or we hit an error. @@ -268,6 +271,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. select { @@ -276,6 +280,8 @@ func (s *journald) followJournal(logWatcher *logger.LogWatcher, config logger.Re C.close(pfd[1]) } + cursor = <-newCursor + return cursor }