Beispiel #1
0
static void DispatchEvent(KonohaContext *kctx, kbool_t (*consume)(KonohaContext *kctx, struct JsonBuf *, KTraceInfo *), KTraceInfo *trace)
{
	struct EventContext *eventContext = EVENTAPI eventContext;
	pthread_mutex_lock(&eventContext->lock);
	RawEvent *rawEvent = dequeueRawEventFromLocalQueue(eventContext->queue);
	pthread_mutex_unlock(&eventContext->lock);
	while(rawEvent != NULL) {
		consume(kctx, (struct JsonBuf *)rawEvent, trace);
		pthread_mutex_lock(&eventContext->lock);
		rawEvent = dequeueRawEventFromLocalQueue(eventContext->queue);
		pthread_mutex_unlock(&eventContext->lock);
	}
}
Beispiel #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);
	}
}