All Versions
12
Latest Version
Avg Release Cycle
46 days
Latest Release
1380 days ago
Changelog History
Page 1
Changelog History
Page 1
-
v0.12 Changes
December 08, 2020- [improvement] added
std::thread
backend (supervisor) - ๐ [bugfix] active timers, if any, are cancelled upon actor shutdown finish
- ๐ [bugfix] supervisor shutdown message is lost in rare cases right after
child actor start - [example]
examples/thread/sha512.cpp
(new) - ๐ [documentation] updated
Event loops & platforms
- ๐ [documentation] updated
Patterns
withBlocking I/O multiplexing
- [deprecated] state_response_t, state_request_t will be removed in v0.13
- [improvement] added
-
v0.11 Changes
November 20, 2020- [improvement] when supervisor shuts self down due to child init failure,
the supervisor init error code is "failure escalation" - ๐ [documentation] updated
Advanced examples
, - ๐ [bugfix] when actor shuts self down all its timers are properly
cancelled - ๐ [bugfix] in rare case supervisor starts, event if child failed to init
- ๐ [bugfix] asio: more correct timers cancellation implementation
- ๐ [bugfix] ev: more correct shutdown (avoid memory leaks in rare cases)
- [improvement] when supervisor shuts self down due to child init failure,
-
v0.10 Changes
November 09, 2020- [improvement/breaking] Generic timers interface
- ๐ [improvement] Request cancellation support
- [improvement] added
make_response
methods when message should be created, but
send later delayed - ๐ [improvement] more debug information in message delivery plugin
- ๐ [documentation] Integration with event loops
- ๐ [documentation] Requests cancellation and timers are demonstrated in the
๐ Advanced Examples section - [example]
examples/boost-asio/ping-pong-timer.cpp
(new) - โก๏ธ [example]
examples/boost-asio/beast-scrapper.cpp
(updated) - ๐ [bugfix] avoid double configuration of a plugin in certain cases when interacting
๐ with resources plugin - ๐ [bugfix] more correct cmake installation (thanks to Jorge Lรณpez Tello, @LtdJorge)
-
v0.09 Changes
October 03, 2020- ๐ [improvement] rewritten whole documentation
- ๐ [improvement/breaking] plugin system where introduced for actors instead of
behaviors - [improvement]
actor_config_t
was introduced, which now holds pointer to
supervisor, init and shutdown timeouts - ๐ [improvement]
builder
pattern was introduced to simplify actors construction - [breaking]
supervisor_config_t
was changed (inherited fromactor_config_t
) - [breaking]
actor_base_t
andsupervisor_t
constructors has changed - now
appropriate config is taken as single parameter. All descendant classes should
be changed - [breaking] if a custom config type is used for actors/supervisors, they
should defineconfig_t
inside the class, and templatedconfig_builder_t
. - [breaking] supervisor in actor is now accessibe via pointer instead of
refence - [bugfix]
supervisor_ev_t
not always correctly released EV-resources, which
lead to leak - [bugfix]
actor_base_t
can be shutted down properly even if it did not
started yet
-
v0.08 Changes
April 12, 2020- ๐ [bugfix] message's arguments are more correctly forwarded
- ๐ [bugfix] actor's arguments are more correctly forwarded in actor's
creation inrotor::supervisor_t
androtor::asio::supervisor_asio_t
- ๐ [bugfix]
rotor::asio::forwarder_t
now more correctly dispatches
boost::asio
events to actor methods; e.g. it works correctly now with
async_accept
method ofsocket_acceptor
-
v0.07 Changes
April 02, 2020- [improvement] more modern cmake usage
-
v0.06 Changes
November 09, 2019- [improvement] registy actor was added to allow via name/address runtime
matching do services discovery - [improvement, breaking] minor changes in supervisor behavior: now it
is considered initialied when all its children confirmed initialization - [improvement]
supervisor_policy_t
was introduced to control supervisor
behavior on a child-actor startup failure - [example]
examples/ev/pong-registry.cpp
how to use registry - [doc] patterns/Registry was added
- [improvement] registy actor was added to allow via name/address runtime
-
v0.05 Changes
September 22, 2019- [improvement] response can be inherited from
rotor::arc_base
, to allow
forwarding requests without copying it (i.e. just intrusive pointer is created) - [example]
examples/boost-asio/beast-scrapper.cpp
has been added; it
๐ท demonstrates an app with pool of actor workers with request-response forwarding
- [improvement] response can be inherited from
-
v0.04 Changes
September 13, 2019- ๐ [improvement] the [request-response] approach is integrated to support basic
[reliable] messaging: response notification failure will be delivered,
if the expected response will not arrive in-time - ๐ [improvement] lambda subscribiers are supported
- [improvement] actor behavior has been introduced to offload actor's
interface - [breaking] supervisor is constructed with help of
supervisor_config_t
,
โฑ which contains shutdown timeout value - โฑ [breaking] supervisor does not spawns timeout timer for overall shutdown
procedure, instead per-child timers are spawned. The root supervisor
the same way monitors child-supervisor shut down - [breaking] supervisor
create_actor
method now takes child max
init time value. If it does not confirm, the child actor will be asked
for shut down. - โฑ [breaking] shutdown request sent to an child actor now timeout-tracked
by supervisor. The message type has changed tomessage::shutdown_request_t
- โฑ [breaking] init request sent to an child actor now timeout-tracked
by supervisor. The message type has changed tomessage::init_request_t
- [breaking] actor's state request message type now
message::state_request_t
,
which follows the generic request/response pattern. The response type
is nowmessage::state_response_t
. - [breaking] {asio, ev, ws} supervisor configs are renamed to have
corresponding suffix.
- ๐ [improvement] the [request-response] approach is integrated to support basic
-
v0.03 Changes
August 24, 2019- [improvement] locality notion was introduced, which led to possibilty
๐ to build superving trees, see [superving-trees]] - [breaking] the
outbound
field inrotor::supervisor_t
was renamed just toqueue
- [breaking]
rotor::address_t
now containsconst void*
locality - [breaking]
rotor::asio::supervisor_config_t
now contains
std::shared_ptr
tostrand
, instead of creating private strand
for each supervisor - [bugfix] redundant
do_start()
method inrotor::supervisor_t
was
โ removed, since supervisor now is able to start self after compliting
๐ initialization. - [bugfix]
rotor::supervisor_t
sendsinitialize_actor_t
to self
to advance own state toINITIALIZED
via common actor mechanism,
instead of changeing state directly on early initialization phase
(do_initialize
) - ๐ [bugfix]
rotor::asio::forwarder_t
now more correctly dispatches
boost::asio events to actor methods - [bugfix]
rotor::ev::supervisor_ev_t
properly handles refcounter
- [improvement] locality notion was introduced, which led to possibilty