aboutsummaryrefslogtreecommitdiff
path: root/forged/internal/unsorted/git_misc.go
diff options
context:
space:
mode:
authorRunxi Yu <me@runxiyu.org>2025-04-06 11:07:36 +0800
committerRunxi Yu <me@runxiyu.org>2025-04-06 11:07:36 +0800
commit669924e830df4fadaaa71691dc90942189598dc7 (patch)
treecf9d2fbf7a689297f19a7a03723b11ec0b31477d /forged/internal/unsorted/git_misc.go
parentCSS: Make lists in the README a bit more sparse (diff)
downloadforge-669924e830df4fadaaa71691dc90942189598dc7.tar.gz
forge-669924e830df4fadaaa71691dc90942189598dc7.tar.zst
forge-669924e830df4fadaaa71691dc90942189598dc7.zip
HTTP: git log should stop on context donev0.1.35
Diffstat (limited to 'forged/internal/unsorted/git_misc.go')
-rw-r--r--forged/internal/unsorted/git_misc.go10
1 files changed, 9 insertions, 1 deletions
diff --git a/forged/internal/unsorted/git_misc.go b/forged/internal/unsorted/git_misc.go
index ceda3d1..dd93726 100644
--- a/forged/internal/unsorted/git_misc.go
+++ b/forged/internal/unsorted/git_misc.go
@@ -67,7 +67,7 @@ WHERE g.depth = cardinality($1::text[])
// The pointer to error is guaranteed to be populated with either nil or the
// error returned by the commit iterator after the returned iterator is
// finished.
-func commitIterSeqErr(commitIter object.CommitIter) (iter.Seq[*object.Commit], *error) {
+func commitIterSeqErr(ctx context.Context, commitIter object.CommitIter) (iter.Seq[*object.Commit], *error) {
var err error
return func(yield func(*object.Commit) bool) {
for {
@@ -79,6 +79,14 @@ func commitIterSeqErr(commitIter object.CommitIter) (iter.Seq[*object.Commit], *
err = err2
return
}
+
+ select {
+ case <-ctx.Done():
+ err = ctx.Err()
+ return
+ default:
+ }
+
if !yield(commit) {
return
}