29 lines
368 B
Go
29 lines
368 B
Go
package lock_free
|
|
|
|
import "time"
|
|
|
|
// Options 无锁队列选项
|
|
type Options struct {
|
|
gap time.Duration
|
|
}
|
|
|
|
type Option func(*Options)
|
|
|
|
func loadOptions(opt ...Option) Options {
|
|
opts := Options{
|
|
gap: time.Millisecond,
|
|
}
|
|
|
|
for _, o := range opt {
|
|
o(&opts)
|
|
}
|
|
|
|
return opts
|
|
}
|
|
|
|
func WithGap(gap time.Duration) Option {
|
|
return func(o *Options) {
|
|
o.gap = gap
|
|
}
|
|
}
|