Releases: linkmonitor/eventrouter
Update GitHub Actions to Node 20 from Node 16
Node 16 has reached EOL and is deprecated. GitHub is transitioning to Node 20:
Assert when ErSend() posts to a full queue
v4.1.0 Update DefaultSendEvent logic not to wait for queue to be cleaned up …
Add context argument to event handlers
NOTE: This release changes the signature of event handlers and breaks existing code.
The fixes should be relatively straightforward: add an argument to all event handlers, ignore it, and add a NULL
context to all module declarations.
This context makes it possible to use class instances as modules that share an event-handling function (possibly a static method of their class).
Refine ER_ASSERT_E
A small update to make ER_ASSERT_E
more sensitive to unintended assignment in its conditional argument.
Print event info on assert
This minor release prints information about events related to assertions. There should be no functional change.
Remove `ErAtomLock_t`
The introduction of ErAtomLock_t
caused problems for clients that re-sent events. This release removes that feature until it can be fixed.
Add ErTryClaim() to the OS implementations
This release adds ErTryClaim()
to the OS-based implementations. This mechanism provides a safe way to send events from non-owning tasks and, hopefully, provides enough documentation to explain what that means.
A side-effect of this change is that clients may have to claim events before sending them during initialization.
Fix ErQueueTimedPopFront()
Fix an extra indirection in ErQueueTimedPopFront()
.
queue_.h and MockOs Bug Fixes
This minor release adds GetTimeMs()
to the MockOs
files and adds extern "C"
annotations to queue_.h
. Clients using v3.0.0 should see no difference when upgrading to this revision.
Version v3.0.0: Add a POSIX backend
This release adds a POSIX backend, an OS-agnostic queue abstraction, and functions for receiving events to handle in a task (these actions happened outside the Event Router in previous releases, and that behavior is still supported).
Clients that use the new functions to receive events and the new queue abstraction can write modules and task-functions that can be shared between the FreeRTOS and POSIX backends.