Remove noop locker.

This commit is contained in:
Nuno Cruces
2023-01-26 12:23:31 +00:00
parent 606163010a
commit 7f6213fbdb
4 changed files with 47 additions and 147 deletions

104
.github/coverage.html vendored
View File

@@ -71,9 +71,7 @@
<option value="file7">github.com/ncruces/go-sqlite3/vfs_lock.go (51.6%)</option>
<option value="file8">github.com/ncruces/go-sqlite3/vfs_lock_noop.go (0.0%)</option>
<option value="file9">github.com/ncruces/go-sqlite3/vfs_unix.go (54.3%)</option>
<option value="file8">github.com/ncruces/go-sqlite3/vfs_unix.go (53.6%)</option>
</select>
</div>
@@ -1465,76 +1463,6 @@ func vfsCheckReservedLock(ctx context.Context, mod api.Module, pFile, pResOut ui
<pre class="file" id="file8" style="display: none">package sqlite3
type vfsNoopLocker struct {
state vfsLockState
}
var _ vfsLocker = &amp;vfsNoopLocker{}
func (l *vfsNoopLocker) LockState() vfsLockState <span class="cov0" title="0">{
return l.state
}</span>
func (l *vfsNoopLocker) LockShared() xErrorCode <span class="cov0" title="0">{
if assert &amp;&amp; !(l.state == _NO_LOCK) </span><span class="cov0" title="0">{
panic(assertErr + " [wz9dcw]")</span>
}
<span class="cov0" title="0">l.state = _SHARED_LOCK
return _OK</span>
}
func (l *vfsNoopLocker) LockReserved() xErrorCode <span class="cov0" title="0">{
if assert &amp;&amp; !(l.state == _SHARED_LOCK) </span><span class="cov0" title="0">{
panic(assertErr + " [m9hcil]")</span>
}
<span class="cov0" title="0">l.state = _RESERVED_LOCK
return _OK</span>
}
func (l *vfsNoopLocker) LockPending() xErrorCode <span class="cov0" title="0">{
if assert &amp;&amp; !(l.state == _SHARED_LOCK || l.state == _RESERVED_LOCK) </span><span class="cov0" title="0">{
panic(assertErr + " [wx8nk2]")</span>
}
<span class="cov0" title="0">l.state = _PENDING_LOCK
return _OK</span>
}
func (l *vfsNoopLocker) LockExclusive() xErrorCode <span class="cov0" title="0">{
if assert &amp;&amp; !(l.state == _PENDING_LOCK) </span><span class="cov0" title="0">{
panic(assertErr + " [84nbax]")</span>
}
<span class="cov0" title="0">l.state = _EXCLUSIVE_LOCK
return _OK</span>
}
func (l *vfsNoopLocker) DowngradeLock() xErrorCode <span class="cov0" title="0">{
if assert &amp;&amp; !(l.state &gt; _SHARED_LOCK) </span><span class="cov0" title="0">{
panic(assertErr + " [je31i3]")</span>
}
<span class="cov0" title="0">l.state = _SHARED_LOCK
return _OK</span>
}
func (l *vfsNoopLocker) Unlock() xErrorCode <span class="cov0" title="0">{
if assert &amp;&amp; !(l.state &gt; _NO_LOCK) </span><span class="cov0" title="0">{
panic(assertErr + " [m6e9w5]")</span>
}
<span class="cov0" title="0">l.state = _NO_LOCK
return _OK</span>
}
func (l *vfsNoopLocker) CheckReservedLock() (bool, xErrorCode) <span class="cov0" title="0">{
if l.state &gt;= _RESERVED_LOCK </span><span class="cov0" title="0">{
return true, _OK
}</span>
<span class="cov0" title="0">return false, _OK</span>
}
</pre>
<pre class="file" id="file9" style="display: none">//go:build unix
package sqlite3
import (
"os"
"runtime"
@@ -1550,8 +1478,12 @@ func (l *vfsFileLocker) LockState() vfsLockState <span class="cov8" title="1">{
}</span>
func (l *vfsFileLocker) LockShared() xErrorCode <span class="cov8" title="1">{
if assert &amp;&amp; !(l.state == _NO_LOCK) </span><span class="cov0" title="0">{
panic(assertErr + " [wz9dcw]")</span>
}
// A PENDING lock is needed before acquiring a SHARED lock.
if !l.fcntlSetLock(&amp;syscall.Flock_t{
<span class="cov8" title="1">if !l.fcntlSetLock(&amp;syscall.Flock_t{
Type: syscall.F_RDLCK,
Start: _PENDING_BYTE,
Len: 1,
@@ -1582,8 +1514,12 @@ func (l *vfsFileLocker) LockShared() xErrorCode <span class="cov8" title="1">{
}
func (l *vfsFileLocker) LockReserved() xErrorCode <span class="cov8" title="1">{
if assert &amp;&amp; !(l.state == _SHARED_LOCK) </span><span class="cov0" title="0">{
panic(assertErr + " [m9hcil]")</span>
}
// Acquire the RESERVED lock.
if !l.fcntlSetLock(&amp;syscall.Flock_t{
<span class="cov8" title="1">if !l.fcntlSetLock(&amp;syscall.Flock_t{
Type: syscall.F_WRLCK,
Start: _RESERVED_BYTE,
Len: 1,
@@ -1595,8 +1531,12 @@ func (l *vfsFileLocker) LockReserved() xErrorCode <span class="cov8" title="1">{
}
func (l *vfsFileLocker) LockPending() xErrorCode <span class="cov8" title="1">{
if assert &amp;&amp; !(l.state == _SHARED_LOCK || l.state == _RESERVED_LOCK) </span><span class="cov0" title="0">{
panic(assertErr + " [wx8nk2]")</span>
}
// Acquire the PENDING lock.
if !l.fcntlSetLock(&amp;syscall.Flock_t{
<span class="cov8" title="1">if !l.fcntlSetLock(&amp;syscall.Flock_t{
Type: syscall.F_WRLCK,
Start: _PENDING_BYTE,
Len: 1,
@@ -1608,8 +1548,12 @@ func (l *vfsFileLocker) LockPending() xErrorCode <span class="cov8" title="1">{
}
func (l *vfsFileLocker) LockExclusive() xErrorCode <span class="cov8" title="1">{
if assert &amp;&amp; !(l.state == _PENDING_LOCK) </span><span class="cov0" title="0">{
panic(assertErr + " [84nbax]")</span>
}
// Acquire the EXCLUSIVE lock.
if !l.fcntlSetLock(&amp;syscall.Flock_t{
<span class="cov8" title="1">if !l.fcntlSetLock(&amp;syscall.Flock_t{
Type: syscall.F_WRLCK,
Start: _SHARED_FIRST,
Len: _SHARED_SIZE,
@@ -1621,8 +1565,12 @@ func (l *vfsFileLocker) LockExclusive() xErrorCode <span class="cov8" title="1">
}
func (l *vfsFileLocker) DowngradeLock() xErrorCode <span class="cov8" title="1">{
if assert &amp;&amp; !(l.state &gt; _SHARED_LOCK) </span><span class="cov0" title="0">{
panic(assertErr + " [je31i3]")</span>
}
// Downgrade to a SHARED lock.
if !l.fcntlSetLock(&amp;syscall.Flock_t{
<span class="cov8" title="1">if !l.fcntlSetLock(&amp;syscall.Flock_t{
Type: syscall.F_RDLCK,
Start: _SHARED_FIRST,
Len: _SHARED_SIZE,

View File

@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="108" height="20" role="img" aria-label="coverage: 61.1%"><title>coverage: 61.1%</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="108" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="61" height="20" fill="#555"/><rect x="61" width="47" height="20" fill="#fe7d37"/><rect width="108" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="315" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="510">coverage</text><text x="315" y="140" transform="scale(.1)" fill="#fff" textLength="510">coverage</text><text aria-hidden="true" x="835" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="370">61.1%</text><text x="835" y="140" transform="scale(.1)" fill="#fff" textLength="370">61.1%</text></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="108" height="20" role="img" aria-label="coverage: 63.6%"><title>coverage: 63.6%</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="108" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="61" height="20" fill="#555"/><rect x="61" width="47" height="20" fill="#fe7d37"/><rect width="108" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="315" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="510">coverage</text><text x="315" y="140" transform="scale(.1)" fill="#fff" textLength="510">coverage</text><text aria-hidden="true" x="835" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="370">63.6%</text><text x="835" y="140" transform="scale(.1)" fill="#fff" textLength="370">63.6%</text></g></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1,66 +0,0 @@
package sqlite3
type vfsNoopLocker struct {
state vfsLockState
}
var _ vfsLocker = &vfsNoopLocker{}
func (l *vfsNoopLocker) LockState() vfsLockState {
return l.state
}
func (l *vfsNoopLocker) LockShared() xErrorCode {
if assert && !(l.state == _NO_LOCK) {
panic(assertErr + " [wz9dcw]")
}
l.state = _SHARED_LOCK
return _OK
}
func (l *vfsNoopLocker) LockReserved() xErrorCode {
if assert && !(l.state == _SHARED_LOCK) {
panic(assertErr + " [m9hcil]")
}
l.state = _RESERVED_LOCK
return _OK
}
func (l *vfsNoopLocker) LockPending() xErrorCode {
if assert && !(l.state == _SHARED_LOCK || l.state == _RESERVED_LOCK) {
panic(assertErr + " [wx8nk2]")
}
l.state = _PENDING_LOCK
return _OK
}
func (l *vfsNoopLocker) LockExclusive() xErrorCode {
if assert && !(l.state == _PENDING_LOCK) {
panic(assertErr + " [84nbax]")
}
l.state = _EXCLUSIVE_LOCK
return _OK
}
func (l *vfsNoopLocker) DowngradeLock() xErrorCode {
if assert && !(l.state > _SHARED_LOCK) {
panic(assertErr + " [je31i3]")
}
l.state = _SHARED_LOCK
return _OK
}
func (l *vfsNoopLocker) Unlock() xErrorCode {
if assert && !(l.state > _NO_LOCK) {
panic(assertErr + " [m6e9w5]")
}
l.state = _NO_LOCK
return _OK
}
func (l *vfsNoopLocker) CheckReservedLock() (bool, xErrorCode) {
if l.state >= _RESERVED_LOCK {
return true, _OK
}
return false, _OK
}

View File

@@ -1,5 +1,3 @@
//go:build unix
package sqlite3
import (
@@ -17,6 +15,10 @@ func (l *vfsFileLocker) LockState() vfsLockState {
}
func (l *vfsFileLocker) LockShared() xErrorCode {
if assert && !(l.state == _NO_LOCK) {
panic(assertErr + " [wz9dcw]")
}
// A PENDING lock is needed before acquiring a SHARED lock.
if !l.fcntlSetLock(&syscall.Flock_t{
Type: syscall.F_RDLCK,
@@ -49,6 +51,10 @@ func (l *vfsFileLocker) LockShared() xErrorCode {
}
func (l *vfsFileLocker) LockReserved() xErrorCode {
if assert && !(l.state == _SHARED_LOCK) {
panic(assertErr + " [m9hcil]")
}
// Acquire the RESERVED lock.
if !l.fcntlSetLock(&syscall.Flock_t{
Type: syscall.F_WRLCK,
@@ -62,6 +68,10 @@ func (l *vfsFileLocker) LockReserved() xErrorCode {
}
func (l *vfsFileLocker) LockPending() xErrorCode {
if assert && !(l.state == _SHARED_LOCK || l.state == _RESERVED_LOCK) {
panic(assertErr + " [wx8nk2]")
}
// Acquire the PENDING lock.
if !l.fcntlSetLock(&syscall.Flock_t{
Type: syscall.F_WRLCK,
@@ -75,6 +85,10 @@ func (l *vfsFileLocker) LockPending() xErrorCode {
}
func (l *vfsFileLocker) LockExclusive() xErrorCode {
if assert && !(l.state == _PENDING_LOCK) {
panic(assertErr + " [84nbax]")
}
// Acquire the EXCLUSIVE lock.
if !l.fcntlSetLock(&syscall.Flock_t{
Type: syscall.F_WRLCK,
@@ -88,6 +102,10 @@ func (l *vfsFileLocker) LockExclusive() xErrorCode {
}
func (l *vfsFileLocker) DowngradeLock() xErrorCode {
if assert && !(l.state > _SHARED_LOCK) {
panic(assertErr + " [je31i3]")
}
// Downgrade to a SHARED lock.
if !l.fcntlSetLock(&syscall.Flock_t{
Type: syscall.F_RDLCK,