MCPcopy Create free account
hub / github.com/cloudbase/garm / loop

Method loop

workers/entity/controller.go:228–247  ·  view source on GitHub ↗

loop drains the watcher consumer channel as fast as possible. It exits when the context is cancelled or quit is closed, triggering a controller stop.

()

Source from the content-addressed store, hash-verified

226// It exits when the context is cancelled or quit is closed, triggering
227// a controller stop.
228func (c *Controller) loop() {
229 defer c.Stop()
230 for {
231 select {
232 case payload := <-c.consumer.Watch():
233 slog.DebugContext(c.ctx, "received payload, queuing for processing")
234 select {
235 case c.eventQueue.In() <- payload:
236 case <-c.ctx.Done():
237 return
238 case <-c.quit:
239 return
240 }
241 case <-c.ctx.Done():
242 return
243 case <-c.quit:
244 return
245 }
246 }
247}

Callers 1

StartMethod · 0.95

Calls 4

StopMethod · 0.95
InMethod · 0.80
WatchMethod · 0.65
DoneMethod · 0.45

Tested by

no test coverage detected