Skip to content

Release v3.6.0

Latest
Compare
Choose a tag to compare
@thomas-bc thomas-bc released this 13 Feb 00:13
· 6 commits to devel since this release
a2a0f39

Major Features

Breaking Changes

Os::ConditionVariable usage

  • Os::ConditionVariable::wait() will no longer lock on behalf of the user. Callers of the wait() API must have previously locked the Mutex. Failing to do so will result in an assertion error as it is illegal to wait without holding a lock.

Changes to the Os::ConditionVariable implementations

  • Implementors of the Os::ConditionVariable interface must now implement pend() instead of wait(), returning a ConditionVariable::Status instead of asserting.

IPv4 Driver Changes

Users of the Drv::TcpClient, Drv::TcpServer and Drv::Udp should not supply the reconnect flag to the start() call of these components anymore. It is also recommended to move the configure call to the configuration section of the topology start up sequence.

+    if (state.hostname != nullptr && state.port != 0) {
+        comm.configure(state.hostname, state.port);
+    }
    if (state.hostname != nullptr && state.port != 0) {
        Os::TaskString name("ReceiveTask");
        // Uplink is configured for receive so a socket task is started
-       comm.configure(state.hostname, state.port);
-       comm.start(name, true, COMM_PRIORITY, Default::STACK_SIZE);
+       comm.start(name, COMM_PRIORITY, Default::STACK_SIZE);
    }
}

Users of Drv::Udp must now call configureSend() / configureRecv() explicitly. It is now illegal to call configure() and will result in an assertion failure.

What's Changed

New Contributors

Full Changelog: v3.5.1...v3.6.0