From eb57cb07025845868e40e3994ba2ec818fd3b4f7 Mon Sep 17 00:00:00 2001 From: Máximo Cuadros Date: Tue, 17 Nov 2015 09:19:51 +0100 Subject: iters: add IsClosed field, fixes #4 --- commit.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'commit.go') diff --git a/commit.go b/commit.go index 9dce880..1440403 100644 --- a/commit.go +++ b/commit.go @@ -113,17 +113,28 @@ func (i *CommitIter) Next() (*Commit, error) { type iter struct { ch chan core.Object r *Repository + + IsClosed bool } func newIter(r *Repository) iter { ch := make(chan core.Object, 1) - return iter{ch, r} + return iter{ch: ch, r: r} } func (i *iter) Add(o core.Object) { + if i.IsClosed { + return + } + i.ch <- o } func (i *iter) Close() { + if i.IsClosed { + return + } + + defer func() { i.IsClosed = true }() close(i.ch) } -- cgit