Patch for some lost of data during sequence writing

This commit is contained in:
2023-02-08 13:14:26 +01:00
parent 4117cbdd08
commit 526bf79c7f
16 changed files with 99 additions and 10 deletions

View File

@ -2,6 +2,7 @@ package obiiter
import (
"sync"
"time"
log "github.com/sirupsen/logrus"
@ -96,6 +97,8 @@ func MakeIPairedBioSequenceBatch(sizes ...int) IPairedBioSequenceBatch {
waiting := sync.WaitGroup{}
i.all_done = &waiting
ii := IPairedBioSequenceBatch{&i}
RegisterAPipe()
return ii
}
@ -115,6 +118,21 @@ func (iterator IPairedBioSequenceBatch) Channel() chan PairedBioSequenceBatch {
return iterator.pointer.channel
}
func (iterator IPairedBioSequenceBatch) Close() {
close(iterator.pointer.channel)
UnregisterPipe()
}
func (iterator IPairedBioSequenceBatch) WaitAndClose() {
iterator.Wait()
for len(iterator.Channel()) > 0 {
time.Sleep(time.Millisecond)
}
iterator.Close()
}
func (iterator IPairedBioSequenceBatch) IsNil() bool {
return iterator.pointer == nil
}