diff options
author | 2024-06-12 14:21:34 +0200 | |
---|---|---|
committer | 2024-06-12 13:21:34 +0100 | |
commit | 978b4176f1a31a497aaadd33f21659b318832c95 (patch) | |
tree | 8ab36617b993a457af5d2975bedaa63a57031ff3 /vendor/github.com/ncruces/go-sqlite3/vfs/memdb/memdb.go | |
parent | [bugfix] Correct Swagger path for poll voting (#2996) (diff) | |
download | gotosocial-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.go | 29 |
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 { |