mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-06-25 10:27:35 +08:00
Conflicts: Gopkg.lock pkg/appsrv/appsrv.go pkg/cloudcommon/options.go pkg/compute/models/hosts.go pkg/compute/models/quotas.go pkg/compute/service/service.go pkg/mcclient/mcclient.go
20 lines
336 B
Go
20 lines
336 B
Go
package missinggo
|
|
|
|
import (
|
|
"reflect"
|
|
"sync"
|
|
)
|
|
|
|
func WaitEvents(l sync.Locker, evs ...*Event) {
|
|
cases := make([]reflect.SelectCase, 0, len(evs))
|
|
for _, ev := range evs {
|
|
cases = append(cases, reflect.SelectCase{
|
|
Dir: reflect.SelectRecv,
|
|
Chan: reflect.ValueOf(ev.C()),
|
|
})
|
|
}
|
|
l.Unlock()
|
|
reflect.Select(cases)
|
|
l.Lock()
|
|
}
|