File tree Expand file tree Collapse file tree 1 file changed +15
-17
lines changed Expand file tree Collapse file tree 1 file changed +15
-17
lines changed Original file line number Diff line number Diff line change @@ -367,7 +367,7 @@ func sortInstanceTypeInfo(instanceTypeInfoSlice []*instancetypes.Details) []*ins
367
367
// executeFilters accepts a mapping of filter name to filter pairs which are iterated through
368
368
// to determine if the instance type matches the filter values.
369
369
func (itf Selector ) executeFilters (filterToInstanceSpecMapping map [string ]filterPair , instanceType string ) (bool , error ) {
370
- abort := make (chan bool , len (filterToInstanceSpecMapping ))
370
+ verdict := make (chan bool , len (filterToInstanceSpecMapping ) + 1 )
371
371
errs := make (chan error )
372
372
ctx , cancel := context .WithCancel (context .Background ())
373
373
defer cancel ()
@@ -385,31 +385,29 @@ func (itf Selector) executeFilters(filterToInstanceSpecMapping map[string]filter
385
385
errs <- err
386
386
}
387
387
if ! ok {
388
- abort <- true
388
+ verdict <- false
389
389
}
390
390
}
391
391
}(ctx , filterName , filter )
392
392
}
393
- done := make (chan bool )
394
393
go func () {
395
394
wg .Wait ()
396
- done <- true
395
+ verdict <- true
397
396
}()
398
- select {
399
- case <- abort :
400
- cancel ()
401
- var err error
402
- for {
403
- select {
404
- case e := <- errs :
405
- err = multierr .Append (err , e )
406
- default :
407
- return false , err
408
- }
409
- }
410
- case <- done :
397
+
398
+ if <- verdict {
411
399
return true , nil
412
400
}
401
+ cancel ()
402
+ var err error
403
+ for {
404
+ select {
405
+ case e := <- errs :
406
+ err = multierr .Append (err , e )
407
+ default :
408
+ return false , err
409
+ }
410
+ }
413
411
}
414
412
415
413
func exec (instanceType string , filterName string , filter filterPair ) (bool , error ) {
You can’t perform that action at this time.
0 commit comments