summaryrefslogtreecommitdiffstats
path: root/vendor/gitea.com/lunny/nodb/multi.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/gitea.com/lunny/nodb/multi.go')
-rw-r--r--vendor/gitea.com/lunny/nodb/multi.go73
1 files changed, 0 insertions, 73 deletions
diff --git a/vendor/gitea.com/lunny/nodb/multi.go b/vendor/gitea.com/lunny/nodb/multi.go
deleted file mode 100644
index ca581ce9a2..0000000000
--- a/vendor/gitea.com/lunny/nodb/multi.go
+++ /dev/null
@@ -1,73 +0,0 @@
-package nodb
-
-import (
- "errors"
- "fmt"
-)
-
-var (
- ErrNestMulti = errors.New("nest multi not supported")
- ErrMultiDone = errors.New("multi has been closed")
-)
-
-type Multi struct {
- *DB
-}
-
-func (db *DB) IsInMulti() bool {
- return db.status == DBInMulti
-}
-
-// begin a mutli to execute commands,
-// it will block any other write operations before you close the multi, unlike transaction, mutli can not rollback
-func (db *DB) Multi() (*Multi, error) {
- if db.IsInMulti() {
- return nil, ErrNestMulti
- }
-
- m := new(Multi)
-
- m.DB = new(DB)
- m.DB.status = DBInMulti
-
- m.DB.l = db.l
-
- m.l.wLock.Lock()
-
- m.DB.sdb = db.sdb
-
- m.DB.bucket = db.sdb
-
- m.DB.index = db.index
-
- m.DB.kvBatch = m.newBatch()
- m.DB.listBatch = m.newBatch()
- m.DB.hashBatch = m.newBatch()
- m.DB.zsetBatch = m.newBatch()
- m.DB.binBatch = m.newBatch()
- m.DB.setBatch = m.newBatch()
-
- return m, nil
-}
-
-func (m *Multi) newBatch() *batch {
- return m.l.newBatch(m.bucket.NewWriteBatch(), &multiBatchLocker{}, nil)
-}
-
-func (m *Multi) Close() error {
- if m.bucket == nil {
- return ErrMultiDone
- }
- m.l.wLock.Unlock()
- m.bucket = nil
- return nil
-}
-
-func (m *Multi) Select(index int) error {
- if index < 0 || index >= int(MaxDBNumber) {
- return fmt.Errorf("invalid db index %d", index)
- }
-
- m.DB.index = uint8(index)
- return nil
-}