Browse Source

Modifications for usage of new queue code.

1.0.0
Georg Hopp 10 years ago
parent
commit
b1c892d9b9
  1. 1
      src/event_dispatcher_register_handler.c
  2. 12
      src/event_dispatcher_start.c
  3. 2
      src/event_handler_handle_event.c
  4. 2
      src/event_handler_issue_event.c

1
src/event_dispatcher_register_handler.c

@ -43,6 +43,7 @@ doRegister(const void * _node, const void * data)
} else { } else {
handler_queue = TR_new(TR_Queue); handler_queue = TR_new(TR_Queue);
handler_queue->free_msgs = 0; handler_queue->free_msgs = 0;
// TODO change TR_Queue to TR_Dynarray as this is no queue.
handler_queue_hv = TR_new( handler_queue_hv = TR_new(
TR_HashValue, TR_HashValue,
node->key, node->key,

12
src/event_dispatcher_start.c

@ -69,18 +69,18 @@ TR_eventDispatcherStart(TR_EventDispatcher this)
? *(TR_Queue *)handler_queue_hv->value ? *(TR_Queue *)handler_queue_hv->value
: NULL; : NULL;
if (handler_queue && ! TR_queueEmpty(handler_queue)) {
TR_Queue queue_node = handler_queue->first;
TR_EventDone done = TR_EVENT_PENDING;
if (handler_queue) {
size_t idx = TR_queueFirst(handler_queue);
TR_EventDone done = TR_EVENT_PENDING;
while (queue_node) {
TR_EventHandler handler = queue_node->msg;
while (idx != TR_queueLast(handler_queue)) {
TR_EventHandler handler = handler_queue->data[idx];
TR_EventDone this_done; TR_EventDone this_done;
this_done = TR_eventHandlerHandleEvent(handler, event); this_done = TR_eventHandlerHandleEvent(handler, event);
done = TR_EVENT_DONE == done ? done : this_done; done = TR_EVENT_DONE == done ? done : this_done;
queue_node = queue_node->next;
idx = idx + 1 == TR_queueSize(handler_queue) ? 0 : idx + 1;
} }
if (TR_EVENT_DONE == done) { if (TR_EVENT_DONE == done) {

2
src/event_handler_handle_event.c

@ -39,7 +39,7 @@ TR_eventHandlerHandleEvent(TR_EventHandler this, TR_Event event)
TR_loggerLog(TR_logger, TR_LOGGER_DEBUG, TR_loggerLog(TR_logger, TR_LOGGER_DEBUG,
"%zd - HANDLE(%zd): %s event on %p with no. %d", "%zd - HANDLE(%zd): %s event on %p with no. %d",
this->dispatcher[0]->events->nmsg,
TR_queueSize(this->dispatcher[0]->events),
event->subject->emitted, event->subject->emitted,
TR_getEventString(event), TR_getEventString(event),
event->subject, event->subject,

2
src/event_handler_issue_event.c

@ -38,7 +38,7 @@ TR_eventHandlerIssueEvent(TR_EventHandler this, TR_Event event)
TR_loggerLog(TR_logger, TR_LOGGER_DEBUG, TR_loggerLog(TR_logger, TR_LOGGER_DEBUG,
"%zd - ISSUE(%zd): %s event on %p with no. %d", "%zd - ISSUE(%zd): %s event on %p with no. %d",
this->dispatcher[i]->events->nmsg,
TR_queueSize(this->dispatcher[i]->events),
event->subject->emitted, event->subject->emitted,
TR_getEventString(event), TR_getEventString(event),
event->subject, event->subject,

Loading…
Cancel
Save