chore: make servicegroup panic as demand (#3422)
This commit is contained in:
@@ -68,7 +68,7 @@ func (sg *ServiceGroup) doStart() {
|
|||||||
|
|
||||||
for i := range sg.services {
|
for i := range sg.services {
|
||||||
service := sg.services[i]
|
service := sg.services[i]
|
||||||
routineGroup.RunSafe(func() {
|
routineGroup.Run(func() {
|
||||||
service.Start()
|
service.Start()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,30 +14,6 @@ var (
|
|||||||
done = make(chan struct{})
|
done = make(chan struct{})
|
||||||
)
|
)
|
||||||
|
|
||||||
type mockedService struct {
|
|
||||||
quit chan struct{}
|
|
||||||
multiplier int
|
|
||||||
}
|
|
||||||
|
|
||||||
func newMockedService(multiplier int) *mockedService {
|
|
||||||
return &mockedService{
|
|
||||||
quit: make(chan struct{}),
|
|
||||||
multiplier: multiplier,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *mockedService) Start() {
|
|
||||||
mutex.Lock()
|
|
||||||
number *= s.multiplier
|
|
||||||
mutex.Unlock()
|
|
||||||
done <- struct{}{}
|
|
||||||
<-s.quit
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *mockedService) Stop() {
|
|
||||||
close(s.quit)
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestServiceGroup(t *testing.T) {
|
func TestServiceGroup(t *testing.T) {
|
||||||
multipliers := []int{2, 3, 5, 7}
|
multipliers := []int{2, 3, 5, 7}
|
||||||
want := 1
|
want := 1
|
||||||
@@ -126,3 +102,27 @@ type mockedStarter struct {
|
|||||||
func (s mockedStarter) Start() {
|
func (s mockedStarter) Start() {
|
||||||
s.fn()
|
s.fn()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type mockedService struct {
|
||||||
|
quit chan struct{}
|
||||||
|
multiplier int
|
||||||
|
}
|
||||||
|
|
||||||
|
func newMockedService(multiplier int) *mockedService {
|
||||||
|
return &mockedService{
|
||||||
|
quit: make(chan struct{}),
|
||||||
|
multiplier: multiplier,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *mockedService) Start() {
|
||||||
|
mutex.Lock()
|
||||||
|
number *= s.multiplier
|
||||||
|
mutex.Unlock()
|
||||||
|
done <- struct{}{}
|
||||||
|
<-s.quit
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *mockedService) Stop() {
|
||||||
|
close(s.quit)
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user