recessive: 修复 ReadLineWithParallel 当读取到文件尾时,返回的 offset 有误的问题
This commit is contained in:
parent
08115d463b
commit
7f3fc89c9d
|
@ -164,9 +164,12 @@ func ReadLineWithParallel(filename string, chunkSize int64, handlerFunc func(str
|
|||
}()
|
||||
|
||||
fileSize, err := file.Seek(0, io.SeekEnd)
|
||||
if err != nil || offset-1 >= fileSize {
|
||||
if err != nil {
|
||||
return offset, err
|
||||
}
|
||||
if offset-1 >= fileSize {
|
||||
return fileSize + 1, nil
|
||||
}
|
||||
|
||||
chunks := FindLineChunksByOffset(file, offset, chunkSize)
|
||||
var end int64
|
||||
|
|
|
@ -156,8 +156,11 @@ func AnalyzeMulti(filePaths []string, handle func(analyzer *Analyzer, record R))
|
|||
func IncrementAnalyze(filePath string, handle func(analyzer *Analyzer, record R)) func() (*Report, error) {
|
||||
var analyzer = new(Analyzer)
|
||||
var offset int64
|
||||
var m = new(sync.Mutex)
|
||||
return func() (*Report, error) {
|
||||
var err error
|
||||
m.Lock()
|
||||
defer m.Unlock()
|
||||
offset, err = file.ReadLineWithParallel(filePath, 1*1024*1024*1024, func(s string) {
|
||||
handle(analyzer, R(s))
|
||||
}, offset)
|
||||
|
|
Loading…
Reference in New Issue