Documentation
¶
Index ¶
Constants ¶
const (
//DefaultRWRatio default read/write ratio
DefaultRWRatio = 10
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Option ¶ added in v0.2.7
type Option struct {
// contains filtered or unexported fields
}
remap option: use a prime number as group number
func RangeOption ¶ added in v0.2.7
RangeOption : range option
type OptionFn ¶ added in v1.2.7
type OptionFn func(o *Option)
OptionFn : option function
func WithRwRatio ¶ added in v0.2.7
WithRwRatio : setup read write ratio
type SemMap ¶
type SemMap struct {
// contains filtered or unexported fields
}
SemMap semaphore map
func (*SemMap) AcquireRead ¶
AcquireRead acquire for read
func (*SemMap) AcquireWrite ¶
AcquireWrite acquire for write
func (*SemMap) ReleaseRead ¶
ReleaseRead release read lock
func (*SemMap) ReleaseWrite ¶
ReleaseWrite release write lock
type SemMapper ¶
type SemMapper interface {
//AcquireRead acquire for read
AcquireRead(ctx context.Context, key any) (*Weighted, error)
//ReleaseRead release read lock
ReleaseRead(key any, w *Weighted)
//AcquireWrite acquire for write
AcquireWrite(ctx context.Context, key any) (*Weighted, error)
//ReleaseWrite release write lock
ReleaseWrite(key any, w *Weighted)
}
SemMapper define interface to Acquire/Release semaphore map container
func NewWideSemMap ¶
NewWideSemMap new wide semaphore map
func NewWideXHashSemMap ¶
NewWideXHashSemMap new wide semaphore map
type Weighted ¶
type Weighted struct {
// contains filtered or unexported fields
}
Weighted provides a way to bound concurrent access to a resource. The callers can request access with a given weight.
type WideSemMap ¶
type WideSemMap struct {
// contains filtered or unexported fields
}
WideSemMap use SemMap array as wide map
func (*WideSemMap) AcquireRead ¶
AcquireRead acquire for read
func (*WideSemMap) AcquireWrite ¶
AcquireWrite acquire for write
func (*WideSemMap) ReleaseRead ¶
func (s *WideSemMap) ReleaseRead(key any, w *Weighted)
ReleaseRead release read lock
func (*WideSemMap) ReleaseWrite ¶
func (s *WideSemMap) ReleaseWrite(key any, w *Weighted)
ReleaseWrite release write lock



