summaryrefslogtreecommitdiff
path: root/vendor/github.com/ncruces/go-sqlite3/vfs/memdb/memdb.go
diff options
context:
space:
mode:
authorLibravatar Daenney <daenney@users.noreply.github.com>2024-06-12 14:21:34 +0200
committerLibravatar GitHub <noreply@github.com>2024-06-12 13:21:34 +0100
commit978b4176f1a31a497aaadd33f21659b318832c95 (patch)
tree8ab36617b993a457af5d2975bedaa63a57031ff3 /vendor/github.com/ncruces/go-sqlite3/vfs/memdb/memdb.go
parent[bugfix] Correct Swagger path for poll voting (#2996) (diff)
downloadgotosocial-978b4176f1a31a497aaadd33f21659b318832c95.tar.xz
[chore] Upgrade wasm-sqlite to v0.16.2 (#2997)
Diffstat (limited to 'vendor/github.com/ncruces/go-sqlite3/vfs/memdb/memdb.go')
-rw-r--r--vendor/github.com/ncruces/go-sqlite3/vfs/memdb/memdb.go29
1 files changed, 14 insertions, 15 deletions
diff --git a/vendor/github.com/ncruces/go-sqlite3/vfs/memdb/memdb.go b/vendor/github.com/ncruces/go-sqlite3/vfs/memdb/memdb.go
index 8dc57ab9c..f21335d8e 100644
--- a/vendor/github.com/ncruces/go-sqlite3/vfs/memdb/memdb.go
+++ b/vendor/github.com/ncruces/go-sqlite3/vfs/memdb/memdb.go
@@ -75,11 +75,6 @@ func (memVFS) FullPathname(name string) (string, error) {
type memDB struct {
name string
- // +checklocks:lockMtx
- pending *memFile
- // +checklocks:lockMtx
- reserved *memFile
-
// +checklocks:dataMtx
data []*[sectorSize]byte
@@ -88,6 +83,10 @@ type memDB struct {
// +checklocks:lockMtx
shared int
+ // +checklocks:lockMtx
+ reserved bool
+ // +checklocks:lockMtx
+ pending bool
// +checklocks:memoryMtx
refs int
@@ -214,24 +213,24 @@ func (m *memFile) Lock(lock vfs.LockLevel) error {
switch lock {
case vfs.LOCK_SHARED:
- if m.pending != nil {
+ if m.pending {
return sqlite3.BUSY
}
m.shared++
case vfs.LOCK_RESERVED:
- if m.reserved != nil {
+ if m.reserved {
return sqlite3.BUSY
}
- m.reserved = m
+ m.reserved = true
case vfs.LOCK_EXCLUSIVE:
if m.lock < vfs.LOCK_PENDING {
- if m.pending != nil {
+ if m.pending {
return sqlite3.BUSY
}
m.lock = vfs.LOCK_PENDING
- m.pending = m
+ m.pending = true
}
for before := time.Now(); m.shared > 1; {
@@ -256,11 +255,11 @@ func (m *memFile) Unlock(lock vfs.LockLevel) error {
m.lockMtx.Lock()
defer m.lockMtx.Unlock()
- if m.pending == m {
- m.pending = nil
+ if m.pending && m.lock >= vfs.LOCK_PENDING {
+ m.pending = false
}
- if m.reserved == m {
- m.reserved = nil
+ if m.reserved && m.lock >= vfs.LOCK_RESERVED {
+ m.reserved = false
}
if lock < vfs.LOCK_SHARED {
m.shared--
@@ -275,7 +274,7 @@ func (m *memFile) CheckReservedLock() (bool, error) {
}
m.lockMtx.Lock()
defer m.lockMtx.Unlock()
- return m.reserved != nil, nil
+ return m.reserved, nil
}
func (m *memFile) SectorSize() int {