pw_sync: split out pw::sync::TimedMutex from pw::sync::Mutex
Change-Id: I6a52123759045658cc21aaa3254279d95c23ed6e
Requires: pigweed-internal:11280
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/40083
Reviewed-by: Wyatt Hepler <hepler@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
Pigweed-Auto-Submit: Ewout van Bekkum <ewout@google.com>
diff --git a/pw_sync/BUILD b/pw_sync/BUILD
index b882e47..f1c6620 100644
--- a/pw_sync/BUILD
+++ b/pw_sync/BUILD
@@ -26,6 +26,7 @@
PW_SYNC_BINARY_SEMAPHORE_BACKEND = "//pw_sync_stl:binary_semaphore"
PW_SYNC_COUNTING_SEMAPHORE_BACKEND = "//pw_sync_stl:counting_semaphore"
PW_SYNC_MUTEX_BACKEND = "//pw_sync_stl:mutex"
+PW_SYNC_TIMED_MUTEX_BACKEND = "//pw_sync_stl:timed_mutex"
PW_SYNC_INTERRUPT_SPIN_LOCK_BACKEND = "//pw_sync_stl:interrupt_spin_lock"
pw_cc_library(
@@ -101,7 +102,6 @@
],
deps = [
PW_SYNC_MUTEX_BACKEND + "_headers",
- "//pw_chrono:system_clock",
"//pw_preprocessor",
],
)
@@ -122,6 +122,38 @@
)
pw_cc_library(
+ name = "timed_mutex_facade",
+ hdrs = [
+ "public/pw_sync/timed_mutex.h",
+ ],
+ includes = ["public"],
+ srcs = [
+ "timed_mutex.cc"
+ ],
+ deps = [
+ PW_SYNC_TIMED_MUTEX_BACKEND + "_headers",
+ "//pw_chrono:system_clock",
+ ":mutex_facade",
+ "//pw_preprocessor",
+ ],
+)
+
+pw_cc_library(
+ name = "timed_mutex",
+ deps = [
+ ":timed_mutex_facade",
+ PW_SYNC_TIMED_MUTEX_BACKEND + "_headers",
+ ],
+)
+
+pw_cc_library(
+ name = "timed_mutex_backend",
+ deps = [
+ PW_SYNC_TIMED_MUTEX_BACKEND,
+ ],
+)
+
+pw_cc_library(
name = "interrupt_spin_lock_facade",
hdrs = [
"public/pw_sync/interrupt_spin_lock.h",
@@ -199,6 +231,19 @@
)
pw_cc_test(
+ name = "timed_mutex_facade_test",
+ srcs = [
+ "timed_mutex_facade_test.cc",
+ "timed_mutex_facade_test_c.c",
+ ],
+ deps = [
+ ":timed_mutex",
+ "//pw_preprocessor",
+ "//pw_unit_test",
+ ],
+)
+
+pw_cc_test(
name = "interrupt_spin_lock_facade_test",
srcs = [
"interrupt_spin_lock_facade_test.cc",