noexcept: add some noexcepts when mirroring the STL
Change-Id: If139a17461644afd0262710631ca413f38f2f66e
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/31040
Commit-Queue: Ewout van Bekkum <ewout@google.com>
Reviewed-by: Wyatt Hepler <hepler@google.com>
diff --git a/pw_chrono/public/pw_chrono/system_clock.h b/pw_chrono/public/pw_chrono/system_clock.h
index 9cd6eae..36481c2 100644
--- a/pw_chrono/public/pw_chrono/system_clock.h
+++ b/pw_chrono/public/pw_chrono/system_clock.h
@@ -99,7 +99,7 @@
static constexpr bool is_nmi_safe = backend::kSystemClockNmiSafe;
// This is thread and IRQ safe. This must be provided by the backend.
- static time_point now() {
+ static time_point now() noexcept {
return time_point(duration(backend::GetSystemClockTickCount()));
}
};
diff --git a/pw_sync/public/pw_sync/binary_semaphore.h b/pw_sync/public/pw_sync/binary_semaphore.h
index 53925d3..4886b34 100644
--- a/pw_sync/public/pw_sync/binary_semaphore.h
+++ b/pw_sync/public/pw_sync/binary_semaphore.h
@@ -65,7 +65,7 @@
// Attempts to decrement by the internal counter to 0 without blocking.
// Returns true if the internal counter was reset successfully.
// This is IRQ safe.
- bool try_acquire();
+ bool try_acquire() noexcept;
// Attempts to decrement the internal counter to 0 where, if needed, blocking
// for at least the specified duration.
@@ -79,7 +79,9 @@
// This is thread safe.
bool try_acquire_until(chrono::SystemClock::time_point until_at_least);
- static constexpr ptrdiff_t max() { return backend::kBinarySemaphoreMaxValue; }
+ static constexpr ptrdiff_t max() noexcept {
+ return backend::kBinarySemaphoreMaxValue;
+ }
native_handle_type native_handle();
diff --git a/pw_sync/public/pw_sync/counting_semaphore.h b/pw_sync/public/pw_sync/counting_semaphore.h
index 18dee02..a7b94f6 100644
--- a/pw_sync/public/pw_sync/counting_semaphore.h
+++ b/pw_sync/public/pw_sync/counting_semaphore.h
@@ -65,7 +65,7 @@
// Attempts to decrement by the internal counter by 1 without blocking.
// Returns true if the internal counter was decremented successfully.
// This is IRQ safe.
- bool try_acquire();
+ bool try_acquire() noexcept;
// Attempts to decrement the internal counter by 1 where, if needed, blocking
// for at least the specified duration.
@@ -79,7 +79,7 @@
// This is thread safe.
bool try_acquire_until(chrono::SystemClock::time_point until_at_least);
- static constexpr ptrdiff_t max() {
+ static constexpr ptrdiff_t max() noexcept {
return backend::kCountingSemaphoreMaxValue;
}
diff --git a/pw_sync_freertos/public/pw_sync_freertos/binary_semaphore_inline.h b/pw_sync_freertos/public/pw_sync_freertos/binary_semaphore_inline.h
index eab8d02..8a3562a 100644
--- a/pw_sync_freertos/public/pw_sync_freertos/binary_semaphore_inline.h
+++ b/pw_sync_freertos/public/pw_sync_freertos/binary_semaphore_inline.h
@@ -59,7 +59,7 @@
#endif // INCLUDE_vTaskSuspend
}
-inline bool BinarySemaphore::try_acquire() {
+inline bool BinarySemaphore::try_acquire() noexcept {
if (interrupt::InInterruptContext()) {
BaseType_t woke_higher_task = pdFALSE;
const bool success =
diff --git a/pw_sync_freertos/public/pw_sync_freertos/counting_semaphore_inline.h b/pw_sync_freertos/public/pw_sync_freertos/counting_semaphore_inline.h
index 8a293d2..9a3e95b 100644
--- a/pw_sync_freertos/public/pw_sync_freertos/counting_semaphore_inline.h
+++ b/pw_sync_freertos/public/pw_sync_freertos/counting_semaphore_inline.h
@@ -48,7 +48,7 @@
#endif // INCLUDE_vTaskSuspend
}
-inline bool CountingSemaphore::try_acquire() {
+inline bool CountingSemaphore::try_acquire() noexcept {
if (interrupt::InInterruptContext()) {
BaseType_t woke_higher_task = pdFALSE;
const bool success =
diff --git a/pw_sync_stl/binary_semaphore.cc b/pw_sync_stl/binary_semaphore.cc
index f1f3fb4..fdff483 100644
--- a/pw_sync_stl/binary_semaphore.cc
+++ b/pw_sync_stl/binary_semaphore.cc
@@ -33,7 +33,7 @@
native_type_.count = 0;
}
-bool BinarySemaphore::try_acquire() {
+bool BinarySemaphore::try_acquire() noexcept {
std::lock_guard lock(native_type_.mutex);
if (native_type_.count != 0) {
native_type_.count = 0;
diff --git a/pw_sync_stl/counting_semaphore.cc b/pw_sync_stl/counting_semaphore.cc
index 781aa77..629d0dc 100644
--- a/pw_sync_stl/counting_semaphore.cc
+++ b/pw_sync_stl/counting_semaphore.cc
@@ -36,7 +36,7 @@
--native_type_.count;
}
-bool CountingSemaphore::try_acquire() {
+bool CountingSemaphore::try_acquire() noexcept {
std::lock_guard lock(native_type_.mutex);
if (native_type_.count != 0) {
--native_type_.count;
diff --git a/pw_sync_threadx/public/pw_sync_threadx/binary_semaphore_inline.h b/pw_sync_threadx/public/pw_sync_threadx/binary_semaphore_inline.h
index f0df039..7fa8dcd 100644
--- a/pw_sync_threadx/public/pw_sync_threadx/binary_semaphore_inline.h
+++ b/pw_sync_threadx/public/pw_sync_threadx/binary_semaphore_inline.h
@@ -50,7 +50,7 @@
PW_ASSERT(result == TX_SUCCESS);
}
-inline bool BinarySemaphore::try_acquire() {
+inline bool BinarySemaphore::try_acquire() noexcept {
const UINT result = tx_semaphore_get(&native_type_, TX_NO_WAIT);
if (result == TX_NO_INSTANCE) {
return false;
diff --git a/pw_sync_threadx/public/pw_sync_threadx/counting_semaphore_inline.h b/pw_sync_threadx/public/pw_sync_threadx/counting_semaphore_inline.h
index 763baee..9dfd1ca 100644
--- a/pw_sync_threadx/public/pw_sync_threadx/counting_semaphore_inline.h
+++ b/pw_sync_threadx/public/pw_sync_threadx/counting_semaphore_inline.h
@@ -51,7 +51,7 @@
PW_ASSERT(tx_semaphore_get(&native_type_, TX_WAIT_FOREVER) == TX_SUCCESS);
}
-inline bool CountingSemaphore::try_acquire() {
+inline bool CountingSemaphore::try_acquire() noexcept {
const UINT result = tx_semaphore_get(&native_type_, TX_NO_WAIT);
if (result == TX_NO_INSTANCE) {
return false;