Skip to content

Commit 80d6917

Browse files
committed
pkg/services: add EngineRecv
1 parent d2aaa39 commit 80d6917

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

pkg/services/service.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,19 @@ func (e *Engine) GoTick(ticker *timeutil.Ticker, fn func(context.Context)) {
9999
})
100100
}
101101

102+
func EngineRecv[C any, CH ~<-chan C](e *Engine, ch CH, fn func(C)) {
103+
e.Go(func(ctx context.Context) {
104+
for {
105+
select {
106+
case <-ctx.Done():
107+
return
108+
case c := <-ch:
109+
fn(c)
110+
}
111+
}
112+
})
113+
}
114+
102115
// Tracer returns the otel tracer with service attributes included.
103116
func (e *Engine) Tracer() trace.Tracer {
104117
return e.tracer

0 commit comments

Comments
 (0)