[#149] selector: Add read timeout #151

Merged
dstepanov-yadro merged 1 commits from dstepanov-yadro/xk6-frostfs:feat/selector_timeout into master 2024-06-24 14:45:48 +00:00
1 changed files with 12 additions and 1 deletions

View File

@ -9,6 +9,8 @@ import (
"go.etcd.io/bbolt"
)
const nextObjectTimeout = 10 * time.Second
type ObjFilter struct {
Status string
Age int
@ -57,7 +59,16 @@ func NewObjSelector(registry *ObjRegistry, selectionSize int, kind SelectorKind,
// - underlying registry context is done, nil objects will be returned on the
// currently blocked and every further NextObject calls.
func (o *ObjSelector) NextObject() *ObjectInfo {
return <-o.objChan
if o.kind == SelectorOneshot {
return <-o.objChan
}
select {
case <-time.After(nextObjectTimeout):
return nil
case obj := <-o.objChan:
return obj
}
}
// Count returns total number of objects that match filter of the selector.