Documentation
¶
Index ¶
- Constants
- func Max(a, b int) int
- func ValidateTrace(items []Item)
- type Alternative
- type Alternative2
- type AsyncChan
- type BufField
- type ChanState
- type Epoch
- type Item
- type OpKind
- type Operation
- type Result
- type SyncPair
- type Thread
- type VState
- type VarState1
- type VarState2
- type VarState3
- type VectorClock
- func (vc VectorClock) Add(k uint64, val int)
- func (vc VectorClock) AddEpoch(ep Epoch)
- func (vc VectorClock) Clone() VectorClock
- func (vc VectorClock) ConcurrentTo(pvc VectorClock) bool
- func (vc VectorClock) Equals(pvc VectorClock) bool
- func (vc VectorClock) FindConflict(pvc VectorClock) uint64
- func (vc VectorClock) HasConflict(pvc VectorClock) bool
- func (vc VectorClock) Less(pvc VectorClock) bool
- func (vc VectorClock) Less_Epoch(pepoch Epoch) bool
- func (vc VectorClock) Remove(pvc VectorClock) VectorClock
- func (vc VectorClock) Set(k uint64, val int)
- func (vc VectorClock) String() string
- func (vc VectorClock) Sync(pvc VectorClock)
Constants ¶
View Source
const ( PREPARE = 1 << iota COMMIT = 1 << iota SEND = 1 << iota RCV = 1 << iota CLS = 1 << iota SIG = 1 << iota WAIT = 1 << iota WRITE = 1 << iota READ = 1 << iota ATOMICREAD = 1 << iota ATOMICWRITE = 1 << iota LOCK = 1 << iota UNLOCK = 1 << iota RLOCK = 1 << iota RUNLOCK = 1 << iota PREBRANCH = 1 << iota POSTBRANCH = 1 << iota NT = 1 << iota NTWT = 1 << iota RMVSEND = 0xF ^ SEND RMVRCV = 0xF ^ RCV RMVPREP = 0xF ^ PREPARE RMVCOT = 0xF ^ COMMIT NOPARTNER = "-" POST = COMMIT )
View Source
const ( EXCLUSIVE = 1 << iota READSHARED = 1 << iota SHARED = 1 << iota )
Variables ¶
This section is empty.
Functions ¶
func ValidateTrace ¶
func ValidateTrace(items []Item)
Types ¶
type Alternative ¶
type Alternative2 ¶
type BufField ¶
type BufField struct { *Item VC VectorClock }
type ChanState ¶
type ChanState struct { Rvc VectorClock Wvc VectorClock WContext map[uint64]string RContext map[uint64]string //For RWLocks CountR int SndCnt uint32 }
func NewChanState ¶
func NewChanState() *ChanState
type Epoch ¶
func (Epoch) Less_Epoch ¶
func (e Epoch) Less_Epoch(vc VectorClock) bool
type Item ¶
func (Item) ShortString ¶
type Operation ¶
type Result ¶
type Result struct { Alts []Alternative2 POs []Alternative2 }
type SyncPair ¶
type SyncPair struct { T1 uint32 T2 uint32 AsyncSend bool AsyncRcv bool Closed bool DoClose bool GoStart bool DataAccess bool Write bool Read bool AtomicWrite bool AtomicRead bool Lock bool Unlock bool Sync bool IsSelect bool Idx int T2Idx int IsGoStart bool IsFork bool IsWait bool IsPreBranch bool IsPostBranch bool IsNT bool IsNTWT bool PostProcess bool Counter uint64 Ev *Item }
type Thread ¶
func (Thread) ShortString ¶
type VarState1 ¶
type VarState1 struct { Rvc VectorClock Wvc VectorClock PrevREv *Item PrevWEv *Item }
type VarState2 ¶
type VarState2 struct { Rvc VectorClock Wepoch Epoch Repoch Epoch PrevREv *Item PrevWEv *Item }
type VarState3 ¶
type VarState3 struct { Rvc VectorClock Wvc VectorClock Wepoch Epoch Repoch Epoch State VState LastAccess uint64 LastOp *Operation LastEv *Item LastSP *SyncPair MutexSet map[uint64]struct{} PrevREv *Item PrevWEv *Item TSet VectorClock }
VarState3 for Epoch + Eraser solution
type VectorClock ¶
func NewVC ¶
func NewVC() VectorClock
func (VectorClock) Add ¶
func (vc VectorClock) Add(k uint64, val int)
func (VectorClock) AddEpoch ¶
func (vc VectorClock) AddEpoch(ep Epoch)
func (VectorClock) Clone ¶
func (vc VectorClock) Clone() VectorClock
func (VectorClock) ConcurrentTo ¶
func (vc VectorClock) ConcurrentTo(pvc VectorClock) bool
func (VectorClock) Equals ¶
func (vc VectorClock) Equals(pvc VectorClock) bool
func (VectorClock) FindConflict ¶
func (vc VectorClock) FindConflict(pvc VectorClock) uint64
func (VectorClock) HasConflict ¶
func (vc VectorClock) HasConflict(pvc VectorClock) bool
func (VectorClock) Less ¶
func (vc VectorClock) Less(pvc VectorClock) bool
func (VectorClock) Less_Epoch ¶
func (vc VectorClock) Less_Epoch(pepoch Epoch) bool
func (VectorClock) Remove ¶
func (vc VectorClock) Remove(pvc VectorClock) VectorClock
func (VectorClock) Set ¶
func (vc VectorClock) Set(k uint64, val int)
func (VectorClock) String ¶
func (vc VectorClock) String() string
func (VectorClock) Sync ¶
func (vc VectorClock) Sync(pvc VectorClock)
Click to show internal directories.
Click to hide internal directories.