Commit 564e2f30408d85ac68db5b7a524d45a20adbf850
1 parent
f453af49
trigger heartbeat with a factor of missed heartbeats instead of multiple times. Change logging a bit
Showing
4 changed files
with
7 additions
and
3 deletions
| @@ -53,6 +53,7 @@ TR_CLASS(TR_EventDispatcher) { | @@ -53,6 +53,7 @@ TR_CLASS(TR_EventDispatcher) { | ||
| 53 | int running; | 53 | int running; |
| 54 | int heartbeat; // milliseconds | 54 | int heartbeat; // milliseconds |
| 55 | int nextbeat; // milliseconds | 55 | int nextbeat; // milliseconds |
| 56 | + size_t n_beats; | ||
| 56 | TR_EventDispatcherMode mode; | 57 | TR_EventDispatcherMode mode; |
| 57 | }; | 58 | }; |
| 58 | TR_INSTANCE_INIT(TR_EventDispatcher); | 59 | TR_INSTANCE_INIT(TR_EventDispatcher); |
| @@ -48,7 +48,8 @@ TR_eventDispatcherStart(TR_EventDispatcher this) | @@ -48,7 +48,8 @@ TR_eventDispatcherStart(TR_EventDispatcher this) | ||
| 48 | now = tp.tv_sec * 1000 + tp.tv_nsec / 1000000; | 48 | now = tp.tv_sec * 1000 + tp.tv_nsec / 1000000; |
| 49 | 49 | ||
| 50 | if (this->nextbeat && this->nextbeat <= now) { | 50 | if (this->nextbeat && this->nextbeat <= now) { |
| 51 | - this->nextbeat += this->heartbeat; | 51 | + this->n_beats = ((now - this->nextbeat) / this->heartbeat) + 1; |
| 52 | + this->nextbeat += this->n_beats * this->heartbeat; | ||
| 52 | event = TR_eventSubjectEmit( | 53 | event = TR_eventSubjectEmit( |
| 53 | (TR_EventSubject)this, | 54 | (TR_EventSubject)this, |
| 54 | TR_DISPATCHER_EVENT_HEARTBEAT, | 55 | TR_DISPATCHER_EVENT_HEARTBEAT, |
| @@ -38,8 +38,9 @@ TR_eventHandlerHandleEvent(TR_EventHandler this, TR_Event event) | @@ -38,8 +38,9 @@ TR_eventHandlerHandleEvent(TR_EventHandler this, TR_Event event) | ||
| 38 | TR_sdbm((unsigned char *)&event->id, sizeof(event->id))); | 38 | TR_sdbm((unsigned char *)&event->id, sizeof(event->id))); |
| 39 | 39 | ||
| 40 | TR_loggerLog(TR_logger, TR_LOGGER_DEBUG, | 40 | TR_loggerLog(TR_logger, TR_LOGGER_DEBUG, |
| 41 | - "%zd - HANDLE: %s event on %p with no. %d", | 41 | + "%zd - HANDLE(%zd): %s event on %p with no. %d", |
| 42 | this->dispatcher[0]->events->nmsg, | 42 | this->dispatcher[0]->events->nmsg, |
| 43 | + event->subject->emitted, | ||
| 43 | TR_getEventString(event), | 44 | TR_getEventString(event), |
| 44 | event->subject, | 45 | event->subject, |
| 45 | event->serial); | 46 | event->serial); |
| @@ -37,8 +37,9 @@ TR_eventHandlerIssueEvent(TR_EventHandler this, TR_Event event) | @@ -37,8 +37,9 @@ TR_eventHandlerIssueEvent(TR_EventHandler this, TR_Event event) | ||
| 37 | TR_eventDispatcherEnqueueEvent(this->dispatcher[i], event); | 37 | TR_eventDispatcherEnqueueEvent(this->dispatcher[i], event); |
| 38 | 38 | ||
| 39 | TR_loggerLog(TR_logger, TR_LOGGER_DEBUG, | 39 | TR_loggerLog(TR_logger, TR_LOGGER_DEBUG, |
| 40 | - "%zd - ISSUE: %s event on %p with no. %d", | 40 | + "%zd - ISSUE(%zd): %s event on %p with no. %d", |
| 41 | this->dispatcher[i]->events->nmsg, | 41 | this->dispatcher[i]->events->nmsg, |
| 42 | + event->subject->emitted, | ||
| 42 | TR_getEventString(event), | 43 | TR_getEventString(event), |
| 43 | event->subject, | 44 | event->subject, |
| 44 | event->serial); | 45 | event->serial); |
Please
register
or
login
to post a comment