36 lines
512 B
Go
36 lines
512 B
Go
package lock
|
|
|
|
type Options struct {
|
|
maxWaitTime int
|
|
expireTime int
|
|
block bool
|
|
reNew bool
|
|
}
|
|
|
|
type Option func(o *Options)
|
|
|
|
func (o *Options) repire() {
|
|
if o.expireTime <= 0 {
|
|
o.expireTime = 10
|
|
o.reNew = true
|
|
}
|
|
}
|
|
|
|
func WithExpireTime(expire int) Option {
|
|
return func(o *Options) {
|
|
o.expireTime = expire
|
|
}
|
|
}
|
|
|
|
func WithBlock() Option {
|
|
return func(o *Options) {
|
|
o.block = true
|
|
}
|
|
}
|
|
|
|
func WithMaxWaitTime(watiTime int) Option {
|
|
return func(o *Options) {
|
|
o.maxWaitTime = watiTime
|
|
}
|
|
}
|