@@ -80,6 +80,12 @@ func (i *squashReposIter) Repository() *Repository { return i.repo }
8080func (i * squashReposIter ) Row () sql.Row { return i .row }
8181func (i * squashReposIter ) Advance () error {
8282 for {
83+ select {
84+ case <- i .ctx .Done ():
85+ return ErrSessionCanceled .New ()
86+ default :
87+ }
88+
8389 var err error
8490 i .repo , err = i .iter .Next ()
8591 if err != nil {
@@ -167,6 +173,12 @@ func (i *squashRemoteIter) Repository() *Repository { return i.repo }
167173func (i * squashRemoteIter ) Row () sql.Row { return i .row }
168174func (i * squashRemoteIter ) Advance () error {
169175 for {
176+ select {
177+ case <- i .ctx .Done ():
178+ return ErrSessionCanceled .New ()
179+ default :
180+ }
181+
170182 if i .repo == nil {
171183 var err error
172184 i .repo , err = i .repos .Next ()
@@ -443,6 +455,12 @@ func (i *squashRefIter) Row() sql.Row {
443455
444456func (i * squashRefIter ) Advance () error {
445457 for {
458+ select {
459+ case <- i .ctx .Done ():
460+ return ErrSessionCanceled .New ()
461+ default :
462+ }
463+
446464 if i .repo == nil {
447465 var err error
448466 i .repo , err = i .repos .Next ()
@@ -1254,6 +1272,12 @@ func (i *squashCommitsIter) Row() sql.Row {
12541272
12551273func (i * squashCommitsIter ) Advance () error {
12561274 for {
1275+ select {
1276+ case <- i .ctx .Done ():
1277+ return ErrSessionCanceled .New ()
1278+ default :
1279+ }
1280+
12571281 if i .repo == nil {
12581282 var err error
12591283 i .repo , err = i .repos .Next ()
@@ -2219,6 +2243,12 @@ func (i *squashTreeEntriesIter) New(ctx *sql.Context, pool *RepositoryPool) (Cha
22192243func (i * squashTreeEntriesIter ) Row () sql.Row { return i .row }
22202244func (i * squashTreeEntriesIter ) Advance () error {
22212245 for {
2246+ select {
2247+ case <- i .ctx .Done ():
2248+ return ErrSessionCanceled .New ()
2249+ default :
2250+ }
2251+
22222252 if i .repo == nil {
22232253 var err error
22242254 i .repo , err = i .repos .Next ()
0 commit comments