Skip to content

Commit 269410d

Browse files
author
kuba--
committed
Add done channel
Signed-off-by: kuba-- <[email protected]>
1 parent 37fdf4d commit 269410d

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

repository_pool.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@ type rowRepoIter struct {
272272
iter RowRepoIter
273273
session *Session
274274
ctx *sql.Context
275+
done chan bool
275276
}
276277

277278
// NewRowRepoIter initializes a new repository iterator.
@@ -302,6 +303,7 @@ func NewRowRepoIter(
302303
iter: iter,
303304
session: s,
304305
ctx: ctx,
306+
done: make(chan bool),
305307
}
306308

307309
return &repoIter, nil
@@ -322,18 +324,21 @@ func (i *rowRepoIter) Next() (sql.Row, error) {
322324
repo, err := i.repositoryIter.Next()
323325
if err != nil {
324326
if err == io.EOF {
327+
close(i.done)
325328
return nil, io.EOF
326329
}
327330

328331
if i.session.SkipGitErrors {
329332
continue
330333
}
331334

335+
close(i.done)
332336
return nil, err
333337
}
334338

335339
i.currRepoIter, err = i.iter.NewIterator(repo)
336340
if err != nil {
341+
close(i.done)
337342
return nil, err
338343
}
339344
}
@@ -350,6 +355,7 @@ func (i *rowRepoIter) Next() (sql.Row, error) {
350355
continue
351356
}
352357

358+
close(i.done)
353359
return nil, err
354360
}
355361

@@ -360,6 +366,8 @@ func (i *rowRepoIter) Next() (sql.Row, error) {
360366

361367
// Close called to close the iterator
362368
func (i *rowRepoIter) Close() error {
369+
close(i.done)
370+
363371
if i.currRepoIter != nil {
364372
i.currRepoIter.Close()
365373
}

repository_pool_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -362,6 +362,7 @@ func testCaseRepositoryErrorIter(
362362
}()
363363

364364
select {
365+
case <-repoIter.done:
365366
case <-repoIter.ctx.Done():
366367

367368
}

0 commit comments

Comments
 (0)