lib/persistentqueue: sync data to file inside filestream.Writer.MustFlush

This commit is contained in:
Aliaksandr Valialkin
2020-09-19 12:51:32 +03:00
parent 26115891db
commit f00e0e0103
2 changed files with 10 additions and 5 deletions

View File

@@ -546,7 +546,7 @@ func (q *Queue) write(buf []byte) error {
func (q *Queue) readFull(buf []byte) error {
bufLen := uint64(len(buf))
if q.readerOffset+bufLen > q.writerFlushedOffset {
q.writer.MustFlush()
q.writer.MustFlush(false)
q.writerFlushedOffset = q.writerOffset
}
n, err := io.ReadFull(q.reader, buf)
@@ -567,8 +567,7 @@ func (q *Queue) flushMetainfoIfNeededLocked(flushData bool) error {
return nil
}
if flushData {
q.writer.MustFlush()
fs.MustSyncPath(q.writerPath)
q.writer.MustFlush(true)
}
if err := q.flushMetainfoLocked(); err != nil {
return fmt.Errorf("cannot flush metainfo: %w", err)