Skip to content

Releases: basiliscos/cpp-rotor

v0.41

18 May 19:28
51a1d5c

Choose a tag to compare

  • [bugfix] avoid race in registry plugin during shutdown
  • [bugfix] avoid race in link_client plugin during shutdown
  • [bugfix] avoid race in supervisor during requests discarding

v0.40

27 Dec 16:44
733bb78

Choose a tag to compare

  • [doc] update synthetic performance metrics
  • [bugfix] [thread-backend] decrease cpu usage
  • [example] added examples/thread/ping-pong-no-alloc.cpp
    (use message redirection/no alloctions)
  • [cmake] copy compile_commands.json only for Makefile generator
  • [ci] use sourcecraft hosting platform as CI/CD friendly
  • [ci] fix appveyor windows builds

v0.39

19 Dec 20:47

Choose a tag to compare

  • [cmake, bugfix] export compile_commands.json only if cmake version is >= 3.29
    (more correct fix, thanks to @ErniGH)

v0.38

17 Dec 19:33
81f8da4

Choose a tag to compare

  • [cmake, bugfix] export compile_commands.json only if cmake version is >= 3.29

v0.37

14 Dec 14:33
03fa2c9

Choose a tag to compare

0.37 (14-Dec-2025)

  • [feature, asio, thread, ev] allow poll-duration to be set to zero save CPU cycles/battery
  • [cmake, breaking] increase cmake version requirement 3.15 -> 3.17
  • [cmake] generate file for clangd langserv (thanks for @rymdbar)
  • [cosmetic] removed trailing spaces (thanks for @rymdbar)
  • [cosmetic] fixed identation to make sources more vim-folding friendly (thanks for @rymdbar)
  • [cosmetic] configure linters to project style (thanks for @rymdbar)

v0.36

14 Oct 05:44
5608387

Choose a tag to compare

0.36 (14-Oct-2025)

  • [feature] add route() and redirect() high-level actor methods, which
    provide convenient API over make_routed_message() introduced in v0.32

v0.35

07 Oct 20:33
1203a91

Choose a tag to compare

0.35 (07-Oct-2025)

  • [breaking] asio supervisor uses steady clock instead of system clock (aka deadline_timer)

v0.34

25 Mar 11:53
2edf680

Choose a tag to compare

0.34 (25-Mar-2025)

  • [feature] improve c++20 support
  • [workaround, fltk] more realiable message delivery for fltk backend. Fltk
    might "forget" to invoke scheduled awakes after shutdown process, which leads
    to minor memory leaks
  • [cmake, breaking] use CMAKE_CURRENT_SOURCE_DIR instead of CMAKE_SOURCE_DIR
  • [cmake, breaking] configure option renamed BUILD_BOOST_ASIO => ROTOR_BUILD_ASIO
  • [cmake, breaking] configure option renamed BUILD_WX => ROTOR_BUILD_WX
  • [cmake, breaking] configure option renamed BUILD_EV => ROTOR_BUILD_EV
  • [cmake, breaking] configure option renamed BUILD_FLTK => ROTOR_BUILD_FLTK
  • [cmake, breaking] configure option renamed BUILD_THREAD => ROTOR_BUILD_THREAD
  • [cmake, breaking] configure option renamed BUILD_DOC => ROTOR_BUILD_DOC
  • [cmake, breaking] configure option renamed BUILD_THREAD_UNSAFE => ROTOR_BUILD_THREAD_UNSAFE
  • [cmake, new] configure option added ROTOR_BUILD_TESTS (instead of ENABLE_TESTING)

v0.33

26 Jan 16:38
5ce3cd3

Choose a tag to compare

0.33 (26-Jan-2025)

  • [cmake, bugfix, win32] add ws2_32 lib for rotor_asion win32 build

v0.32

18 Dec 15:33

Choose a tag to compare

  • [feature] added make_routed_message() free function.
    The function is used for "synchronized" message post-processing, i.e. once a
    message has been delivered and processed by all recipients (can be zero),
    then it is routed to the specifed address to do cleanup.

Example:

  1. an db-actor and opens transaction and reads data (i.e. as std::string_views, owned by db)
  2. actors sends broadcast message to all interesting parties to deserialized data
  3. after the step 2 is finished the db-actor closes transaction and releases acquired resources.

The make_routed_message is needed to perform recipient-agnostic 3rd step.

The alternative is to create a copy (snapshot) of data (i.e. std::string
instead of std::string_view), but that seems redundant.

  • [improvement, breaking] add void* parameter to message_visitor_t