diff options
author | Runxi Yu <me@runxiyu.org> | 2025-04-06 11:07:36 +0800 |
---|---|---|
committer | Runxi Yu <me@runxiyu.org> | 2025-04-06 11:07:36 +0800 |
commit | 669924e830df4fadaaa71691dc90942189598dc7 (patch) | |
tree | cf9d2fbf7a689297f19a7a03723b11ec0b31477d /forged/internal/unsorted/git_misc.go | |
parent | CSS: Make lists in the README a bit more sparse (diff) | |
download | forge-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.go | 10 |
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 } |