Documentation ¶
Rendered for windows/amd64
Overview ¶
Package mutex 封装了 windows 的跨进程锁。
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrDurationTooLong 表明传入的 duration 太长。 ErrDurationTooLong = errors.New("mutex acquire: duration too long") // ErrWaitTimeout 表明等待锁的时间超过了指定的最长等待时间。 ErrWaitTimeout = windows.WAIT_TIMEOUT )
Functions ¶
This section is empty.
Types ¶
type Releaser ¶
type Releaser struct {
// contains filtered or unexported fields
}
Releaser 用于释放锁资源。
func Acquire ¶
Acquire 创建跨进程互斥锁。 返回 Releaser 的 Release 方法用于释放锁资源。它必须且只能被调用一次。
Example ¶
r, err := Acquire("kvii_mutex_example_acquire") if err != nil { panic(err) } defer r.Release() if r.IsAbandoned() { // 检查被加锁的资源是否处于一致状态 }
Output:
func AcquireWithTimeout ¶
AcquireWithTimeout 创建跨进程互斥锁,并指定最长等待时间。 返回 Releaser 的 Release 方法用于释放锁资源。它必须且只能被调用一次。
Example ¶
r, err := AcquireWithTimeout("kvii_mutex_example_acquire_with_timeout", time.Second) if err != nil { panic(err) } defer r.Release() if r.IsAbandoned() { // 检查被加锁的资源是否处于一致状态 }
Output:
func (*Releaser) IsAbandoned ¶
IsAbandoned 表明锁的上一任持有者是否在没有释放锁时就退出了。 这很可能是因为上一任持有者发生了严重错误。使用者应该检查被加锁的资源是否处于一致状态。 注意此时锁已经被当前使用者所持有了,使用者依然需要调用 Release 方法。
Click to show internal directories.
Click to hide internal directories.