29
var _ PriorityMutex = (*PriorityMutexImpl)(nil)
30
32
>
lock := &sync.Mutex{}
33
>
syncCV := NewConditionVariable(lock)
34
>
asyncCV := NewConditionVariable(lock)
35
>
return &PriorityMutexImpl{
36
>
locker: lock,
37
>
highCV: syncCV,
38
>
lowCV: asyncCV,
39
>
highWait: 0,
40
>
lowWait: 0,
41
>
42
>
lockState: PriorityMutexStateUnlocked,
43
>
}
44
>
}
45
46
// LockHigh try to lock with high priority, use LockHigh / UnlockHigh pair to lock / unlock