vendor: update all dependencies except Azure SDK
The Azure SDK doesn't support Go 1.5 anymore. We can't upgrade it until Go 1.8 comes out.
This commit is contained in:
2
vendor/github.com/syndtr/goleveldb/leveldb/session.go
generated
vendored
2
vendor/github.com/syndtr/goleveldb/leveldb/session.go
generated
vendored
@ -47,6 +47,7 @@ type session struct {
|
||||
o *cachedOptions
|
||||
icmp *iComparer
|
||||
tops *tOps
|
||||
fileRef map[int64]int
|
||||
|
||||
manifest *journal.Writer
|
||||
manifestWriter storage.Writer
|
||||
@ -69,6 +70,7 @@ func newSession(stor storage.Storage, o *opt.Options) (s *session, err error) {
|
||||
s = &session{
|
||||
stor: stor,
|
||||
storLock: storLock,
|
||||
fileRef: make(map[int64]int),
|
||||
}
|
||||
s.setOptions(o)
|
||||
s.tops = newTableOps(s)
|
||||
|
27
vendor/github.com/syndtr/goleveldb/leveldb/session_util.go
generated
vendored
27
vendor/github.com/syndtr/goleveldb/leveldb/session_util.go
generated
vendored
@ -39,6 +39,18 @@ func (s *session) newTemp() storage.FileDesc {
|
||||
return storage.FileDesc{storage.TypeTemp, num}
|
||||
}
|
||||
|
||||
func (s *session) addFileRef(fd storage.FileDesc, ref int) int {
|
||||
ref += s.fileRef[fd.Num]
|
||||
if ref > 0 {
|
||||
s.fileRef[fd.Num] = ref
|
||||
} else if ref == 0 {
|
||||
delete(s.fileRef, fd.Num)
|
||||
} else {
|
||||
panic(fmt.Sprintf("negative ref: %v", fd))
|
||||
}
|
||||
return ref
|
||||
}
|
||||
|
||||
// Session state.
|
||||
|
||||
// Get current version. This will incr version ref, must call
|
||||
@ -46,7 +58,7 @@ func (s *session) newTemp() storage.FileDesc {
|
||||
func (s *session) version() *version {
|
||||
s.vmu.Lock()
|
||||
defer s.vmu.Unlock()
|
||||
s.stVersion.ref++
|
||||
s.stVersion.incref()
|
||||
return s.stVersion
|
||||
}
|
||||
|
||||
@ -59,14 +71,15 @@ func (s *session) tLen(level int) int {
|
||||
// Set current version to v.
|
||||
func (s *session) setVersion(v *version) {
|
||||
s.vmu.Lock()
|
||||
v.ref = 1 // Holds by session.
|
||||
if old := s.stVersion; old != nil {
|
||||
v.ref++ // Holds by old version.
|
||||
old.next = v
|
||||
old.releaseNB()
|
||||
defer s.vmu.Unlock()
|
||||
// Hold by session. It is important to call this first before releasing
|
||||
// current version, otherwise the still used files might get released.
|
||||
v.incref()
|
||||
if s.stVersion != nil {
|
||||
// Release current version.
|
||||
s.stVersion.releaseNB()
|
||||
}
|
||||
s.stVersion = v
|
||||
s.vmu.Unlock()
|
||||
}
|
||||
|
||||
// Get current unused file number.
|
||||
|
40
vendor/github.com/syndtr/goleveldb/leveldb/version.go
generated
vendored
40
vendor/github.com/syndtr/goleveldb/leveldb/version.go
generated
vendored
@ -34,44 +34,48 @@ type version struct {
|
||||
|
||||
cSeek unsafe.Pointer
|
||||
|
||||
closing bool
|
||||
ref int
|
||||
// Succeeding version.
|
||||
next *version
|
||||
closing bool
|
||||
ref int
|
||||
released bool
|
||||
}
|
||||
|
||||
func newVersion(s *session) *version {
|
||||
return &version{s: s}
|
||||
}
|
||||
|
||||
func (v *version) incref() {
|
||||
if v.released {
|
||||
panic("already released")
|
||||
}
|
||||
|
||||
v.ref++
|
||||
if v.ref == 1 {
|
||||
// Incr file ref.
|
||||
for _, tt := range v.levels {
|
||||
for _, t := range tt {
|
||||
v.s.addFileRef(t.fd, 1)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (v *version) releaseNB() {
|
||||
v.ref--
|
||||
if v.ref > 0 {
|
||||
return
|
||||
}
|
||||
if v.ref < 0 {
|
||||
} else if v.ref < 0 {
|
||||
panic("negative version ref")
|
||||
}
|
||||
|
||||
nextTables := make(map[int64]bool)
|
||||
for _, tt := range v.next.levels {
|
||||
for _, t := range tt {
|
||||
num := t.fd.Num
|
||||
nextTables[num] = true
|
||||
}
|
||||
}
|
||||
|
||||
for _, tt := range v.levels {
|
||||
for _, t := range tt {
|
||||
num := t.fd.Num
|
||||
if _, ok := nextTables[num]; !ok {
|
||||
if v.s.addFileRef(t.fd, -1) == 0 {
|
||||
v.s.tops.remove(t)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
v.next.releaseNB()
|
||||
v.next = nil
|
||||
v.released = true
|
||||
}
|
||||
|
||||
func (v *version) release() {
|
||||
|
Reference in New Issue
Block a user