Add: support config single thread

This commit is contained in:
2021-12-15 09:11:03 +08:00
parent 97083114fb
commit 73828c547c
3 changed files with 41 additions and 15 deletions

View File

@@ -10,10 +10,34 @@ import (
type Database struct {
sqlConn *sql.DB
stmt *Stmt
singleThreadLock *sync.Mutex
singleThreadLock SingleThreadLock
}
func NewDatabase(dbName string) (*Database, error) {
func NewSingleThreadLock(enabled bool) SingleThreadLock {
return SingleThreadLock{
lock: sync.Mutex{},
enabled: enabled,
}
}
type SingleThreadLock struct {
lock sync.Mutex
enabled bool
}
func (stl *SingleThreadLock) Lock() {
if stl.enabled {
stl.lock.Lock()
}
}
func (stl *SingleThreadLock) Unlock() {
if stl.enabled {
stl.lock.Unlock()
}
}
func NewDatabase(dbName string, singleThread bool) (*Database, error) {
var err error
// open database
@@ -32,7 +56,7 @@ func NewDatabase(dbName string) (*Database, error) {
database := &Database{
sqlConn: sqlConn,
stmt: stmt,
singleThreadLock: &sync.Mutex{},
singleThreadLock: NewSingleThreadLock(singleThread),
}
return database, nil