mirror of
https://gitee.com/milvus-io/milvus.git
synced 2024-12-02 11:59:00 +08:00
f53ab54c5d
issue: #30926, #33132 - implement future-based cgo utility. --------- Signed-off-by: chyezh <chyezh@outlook.com>
33 lines
591 B
Go
33 lines
591 B
Go
package cgo
|
|
|
|
func getDefaultOpt() *options {
|
|
return &options{
|
|
name: "unknown",
|
|
releaser: nil,
|
|
}
|
|
}
|
|
|
|
type options struct {
|
|
name string
|
|
releaser func()
|
|
}
|
|
|
|
// Opt is the option type for future.
|
|
type Opt func(*options)
|
|
|
|
// WithReleaser sets the releaser function.
|
|
// When a future is ready, the releaser function will be called once.
|
|
func WithReleaser(releaser func()) Opt {
|
|
return func(o *options) {
|
|
o.releaser = releaser
|
|
}
|
|
}
|
|
|
|
// WithName sets the name of the future.
|
|
// Only used for metrics.
|
|
func WithName(name string) Opt {
|
|
return func(o *options) {
|
|
o.name = name
|
|
}
|
|
}
|