mirror of
https://github.com/fluencelabs/tendermint
synced 2025-05-19 01:51:19 +00:00
Don't use io.Seek*, not supported in older versions
This commit is contained in:
parent
539f8f91bd
commit
fc31b463b1
@ -2,7 +2,6 @@ package consensus
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"io"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
@ -103,10 +102,17 @@ func (wal *WAL) Wait() {
|
||||
<-wal.done
|
||||
}
|
||||
|
||||
// TODO: remove once we stop supporting older golang version
|
||||
const (
|
||||
ioSeekStart = 0
|
||||
ioSeekCurrent = 1
|
||||
ioSeekEnd = 2
|
||||
)
|
||||
|
||||
func (wal *WAL) SeekFromEnd(found func([]byte) bool) (nLines int, err error) {
|
||||
var current int64
|
||||
// start at the end
|
||||
current, err = wal.fp.Seek(0, io.SeekEnd)
|
||||
current, err = wal.fp.Seek(0, ioSeekEnd)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@ -116,11 +122,11 @@ func (wal *WAL) SeekFromEnd(found func([]byte) bool) (nLines int, err error) {
|
||||
for {
|
||||
current -= 1
|
||||
if current < 0 {
|
||||
wal.fp.Seek(0, io.SeekStart) // back to beginning
|
||||
wal.fp.Seek(0, ioSeekStart) // back to beginning
|
||||
return
|
||||
}
|
||||
// backup one and read a new byte
|
||||
if _, err = wal.fp.Seek(current, io.SeekStart); err != nil {
|
||||
if _, err = wal.fp.Seek(current, ioSeekStart); err != nil {
|
||||
return
|
||||
}
|
||||
b := make([]byte, 1)
|
||||
@ -137,8 +143,8 @@ func (wal *WAL) SeekFromEnd(found func([]byte) bool) (nLines int, err error) {
|
||||
}
|
||||
|
||||
if found(lineBytes) {
|
||||
wal.fp.Seek(0, io.SeekCurrent) // (?)
|
||||
wal.fp.Seek(current, io.SeekStart)
|
||||
wal.fp.Seek(0, ioSeekCurrent) // (?)
|
||||
wal.fp.Seek(current, ioSeekStart)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user