116
}
117
118
>
func (g *ReaderGroup) NewReader(readerID int64, slices ...Slice) Reader {
reader_group.go
119
>
g.Lock()
120
>
defer g.Unlock()
121
>
122
>
return g.newReaderLocked(readerID, slices...)
123
>
}
124
125
>
func (g *ReaderGroup) newReaderLocked(readerID int64, slices ...Slice) Reader {
reader_group.go
126
>
reader := g.initializer(readerID, slices)
127
>
128
>
if _, ok := g.readerMap[readerID]; ok {
129
panic(fmt.Sprintf("reader with ID %v already exists", readerID))
130
}
131
133
>
134
>
if g.isStarted() {
135
reader.Start()
136
}
138
}
139