Implemented checkInvariants.
parent
c6fab5488b
commit
a9ebf7fe45
|
@ -15,6 +15,7 @@
|
||||||
package cachingfs
|
package cachingfs
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/jacobsa/fuse"
|
"github.com/jacobsa/fuse"
|
||||||
|
@ -96,13 +97,8 @@ type cachingFS struct {
|
||||||
|
|
||||||
// The current ID of the lowest numbered non-root inode.
|
// The current ID of the lowest numbered non-root inode.
|
||||||
//
|
//
|
||||||
// INVARIANT: FooID() > fuse.RootInodeID
|
// INVARIANT: baseID > fuse.RootInodeID
|
||||||
// INVARIANT: DirID() > fuse.RootInodeID
|
// INVARIANT: baseID % numInodes == 0
|
||||||
// INVARIANT: BarID() > fuse.RootInodeID
|
|
||||||
//
|
|
||||||
// INVARIANT: FooID() % numInodes == fooOffset
|
|
||||||
// INVARIANT: DirID() % numInodes == dirOffset
|
|
||||||
// INVARIANT: BarID() % numInodes == barOffset
|
|
||||||
//
|
//
|
||||||
// GUARDED_BY(mu)
|
// GUARDED_BY(mu)
|
||||||
baseID fuse.InodeID
|
baseID fuse.InodeID
|
||||||
|
@ -111,7 +107,13 @@ type cachingFS struct {
|
||||||
mtime time.Time
|
mtime time.Time
|
||||||
}
|
}
|
||||||
|
|
||||||
func (fs *cachingFS) checkInvariants()
|
func (fs *cachingFS) checkInvariants() {
|
||||||
|
// INVARIANT: baseID > fuse.RootInodeID
|
||||||
|
// INVARIANT: baseID % numInodes == 0
|
||||||
|
if fs.baseID <= fuse.RootInodeID || fs.baseID%numInodes != 0 {
|
||||||
|
panic(fmt.Sprintf("Bad baseID: %v", fs.baseID))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// LOCKS_EXCLUDED(fs.mu)
|
// LOCKS_EXCLUDED(fs.mu)
|
||||||
func (fs *cachingFS) FooID() fuse.InodeID {
|
func (fs *cachingFS) FooID() fuse.InodeID {
|
||||||
|
|
Loading…
Reference in New Issue