Skip to content

Commit

Permalink
Return error from iterator.Close() function.
Browse files Browse the repository at this point in the history
  • Loading branch information
manishrjain committed May 30, 2017
1 parent 55c350d commit 7610c2f
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 11 deletions.
2 changes: 1 addition & 1 deletion badger/kv.go
Original file line number Diff line number Diff line change
Expand Up @@ -356,7 +356,7 @@ func (s *KV) get(key []byte) (y.ValueStruct, error) {
}

// Get looks for key and returns a KVItem.
// If key is not found, value returned is nil.
// If key is not found, item.Value() is nil.
func (s *KV) Get(key []byte, item *KVItem) error {
vs, err := s.get(key)
if err != nil {
Expand Down
5 changes: 3 additions & 2 deletions skl/skl.go
Original file line number Diff line number Diff line change
Expand Up @@ -393,8 +393,9 @@ type Iterator struct {
n *node
}

func (s *Iterator) Close() {
func (s *Iterator) Close() error {
s.list.DecrRef()
return nil
}

// Valid returns true iff the iterator is positioned at a valid node.
Expand Down Expand Up @@ -490,4 +491,4 @@ func (s *UniIterator) Key() []byte { return s.iter.Key() }
func (s *UniIterator) Value() y.ValueStruct { return s.iter.Value() }
func (s *UniIterator) Valid() bool { return s.iter.Valid() }
func (s *UniIterator) Name() string { return "UniMemtableIterator" }
func (s *UniIterator) Close() { s.iter.Close() }
func (s *UniIterator) Close() error { return s.iter.Close() }
11 changes: 7 additions & 4 deletions table/iterator.go
Original file line number Diff line number Diff line change
Expand Up @@ -209,8 +209,8 @@ func (t *Table) NewIterator(reversed bool) *TableIterator {
return ti
}

func (itr *TableIterator) Close() {
itr.t.DecrRef()
func (itr *TableIterator) Close() error {
return itr.t.DecrRef()
}

func (itr *TableIterator) reset() {
Expand Down Expand Up @@ -529,8 +529,11 @@ func (s *ConcatIterator) Next() {
}
}

func (s *ConcatIterator) Close() {
func (s *ConcatIterator) Close() error {
for _, it := range s.iters {
it.Close()
if err := it.Close(); err != nil {
return errors.Wrap(err, "ConcatIterator")
}
}
return nil
}
11 changes: 8 additions & 3 deletions y/iterator.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ package y
import (
"bytes"
"container/heap"

"github.com/pkg/errors"
// "fmt"
)

Expand All @@ -39,7 +41,7 @@ type Iterator interface {
Name() string // Mainly for debug or testing.

// All iterators should be closed so that file garbage collection works.
Close()
Close() error
}

type elem struct {
Expand Down Expand Up @@ -196,8 +198,11 @@ func (s *MergeIterator) Seek(key []byte) {
s.initHeap()
}

func (s *MergeIterator) Close() {
func (s *MergeIterator) Close() error {
for _, itr := range s.all {
itr.Close()
if err := itr.Close(); err != nil {
return errors.Wrap(err, "MergeIterator")
}
}
return nil
}
2 changes: 1 addition & 1 deletion y/iterator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ var (
closeCount int
)

func (s *SimpleIterator) Close() { closeCount++ }
func (s *SimpleIterator) Close() error { closeCount++; return nil }
func (s *SimpleIterator) Name() string { return "SimpleIterator" }

func (s *SimpleIterator) Next() {
Expand Down

0 comments on commit 7610c2f

Please sign in to comment.