C++ Actor Framework v0.18.5 Release NotesRelease Date: 2021-07-16 // 6 months ago
- 0.18.4 introduced a potential crash when using the OpenSSL module and
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
- The new class
caf::telemetry::importer::processallows users to get access to process metrics even when not configuring CAF to export metrics to Prometheus via HTTP.
- Message views now perform the type-check in their constructor. With this
make_*utility functions are no longer mandatory and users may instead simply construct the view directly.
- 🖨 Printing a
config_valuethat contains a zero duration
timespannow properly prints
1s(#1262). This bug most notably showed up when setting a
timespanparameter such as
caf.middleman.heartbeat-intervalvia config file or CLI to
0sand then printing the config parameter, e.g., via
- 🚀 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_READon the transport (#1060).
- ⏱ Scheduled actors now accept default handlers for down messages etc. with
non-const apply operator such as lambda expressions declared as
- ⬇️ Dropped three obsolete (and broken) macros in the
- The new class