Skip to content

Commit 2c5bdc8

Browse files
committed
Add locking to setError in RowRepoIter
Signed-off-by: Javi Fontan <[email protected]>
1 parent 5bff3e6 commit 2c5bdc8

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

repository_pool.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,8 @@ type RowRepoIter interface {
157157
// RowRepoIter is used as the base to iterate over all the repositories
158158
// in the pool
159159
type rowRepoIter struct {
160+
mu sync.Mutex
161+
160162
repositoryIter *RepositoryIter
161163
iter RowRepoIter
162164
session *Session
@@ -219,6 +221,9 @@ func NewRowRepoIter(
219221
}
220222

221223
func (i *rowRepoIter) setError(err error) {
224+
i.mu.Lock()
225+
defer i.mu.Unlock()
226+
222227
i.err = err
223228
}
224229

@@ -312,6 +317,9 @@ func (i *rowRepoIter) rowReader(num int) {
312317
func (i *rowRepoIter) Next() (sql.Row, error) {
313318
row, ok := <-i.rows
314319
if !ok {
320+
i.mu.Lock()
321+
defer i.mu.Unlock()
322+
315323
return nil, i.err
316324
}
317325

0 commit comments

Comments
 (0)