bool IOEventLoop::AddSignalEvents(std::vector<int> sigs,
                                  const std::function<bool()>& callback) {
  for (auto sig : sigs) {
    if (!AddSignalEvent(sig, callback)) {
      return false;
    }
  }
  return true;
}
示例#2
0
static void DispatchEvent(KonohaContext *kctx, kbool_t (*consume)(KonohaContext *kctx, struct JsonBuf *, KTraceInfo *), KTraceInfo *trace)
{
	struct EventContext *eventContext = PLATAPI eventContext;
	if(eventContext->caughtSignal != 0) {
		eventContext->caughtSignal = 0;
		AddSignalEvent(kctx, eventContext, trace);
	}
	RawEvent *rawEvent = dequeueRawEventFromLocalQueue(eventContext->queue);
	while(rawEvent != NULL) {
		consume(kctx, (struct JsonBuf *)rawEvent, trace);
		rawEvent = dequeueRawEventFromLocalQueue(eventContext->queue);
	}
}