C++ Actor Framework v0.18.5 Release Notes
Release Date: 2021-07-16 // over 3 years ago-
๐ Fixed
- 0.18.4 introduced a potential crash when using the OpenSSL module and
encountering
SSL_ERROR_WANT_READ
. The crash manifested if CAF resumed a write operation but failed to fully reset its state. The state management (and consequently the crash) has been fixed. - CAF now clears the actor registry before calling the destructors of loaded modules. This fixes undefined behavior that could occur in rare cases where actor cleanup code could run after loaded modules had been destroyed.
- 0.18.4 introduced a potential crash when using the OpenSSL module and
encountering
Previous changes from v0.18.4
-
โ Added
- The new class
caf::telemetry::importer::process
allows users to get access to process metrics even when not configuring CAF to export metrics to Prometheus via HTTP.
๐ Changed
- Message views now perform the type-check in their constructor. With this
change, the
make_*
utility functions are no longer mandatory and users may instead simply construct the view directly.
๐ Fixed
- ๐จ Printing a
config_value
that contains a zero durationtimespan
now properly prints0s
instead of1s
(#1262). This bug most notably showed up when setting atimespan
parameter such ascaf.middleman.heartbeat-interval
via config file or CLI to0s
and then printing the config parameter, e.g., via--dump-config
. - ๐ Blocking actors now release their private thread before decrementing the running-actors count to resolve a race condition during system shutdown that could result in the system hanging (#1266).
- When using the OpenSSL module, CAF could run into a state where the SSL layer
wants to read data while CAF is trying to send data. In this case, CAF did not
properly back off, causing high CPU load due to spinning and in some scenarios
never recovering. This issue has been resolved by properly handling
SSL_ERROR_WANT_READ
on the transport (#1060). - โฑ Scheduled actors now accept default handlers for down messages etc. with
non-const apply operator such as lambda expressions declared as
mutable
.
โ Removed
- โฌ๏ธ Dropped three obsolete (and broken) macros in the
unit_test.hpp
header:CAF_CHECK_FAILED
,CAF_CHECK_FAIL
andCAF_CHECK_PASSED
.
- The new class