func()

in internal/daemon/oracle/oracle.go [195:225]


func (s *Service) checkServiceCommunication(ctx context.Context) {
	// Effectively give ctx.Done() priority over the channel.
	if ctx.Err() != nil {
		return
	}

	select {
	case <-ctx.Done():
		return
	case msg := <-s.CommonCh:
		log.CtxLogger(ctx).Debugw("Oracle workload agent service received a message on the common channel", "message", msg)
		switch msg.Origin {
		case servicecommunication.Discovery:
			log.CtxLogger(ctx).Debugw("Oracle workload agent service received a discovery message")
			s.processesMutex.Lock()
			s.processes = msg.DiscoveryResult.Processes
			s.processesMutex.Unlock()
			for _, p := range msg.DiscoveryResult.Processes {
				name, err := p.Name()
				if err == nil && servicecommunication.HasAnyPrefix(name, oraProcessPrefixes) {
					s.isProcessPresent = true
					break
				}
			}
		case servicecommunication.DWActivation:
			log.CtxLogger(ctx).Debugw("Oracle workload agent service received a DW activation message")
		default:
			log.CtxLogger(ctx).Debugw("Oracle workload agent service received a message with an unexpected origin", "origin", msg.Origin)
		}
	}
}