pw_sync: adds VirtualBasicLockable interface
Adds a virtual lock interface in case the lock selection cannot
be templated.
Change-Id: I79f3f28c28572e970ddf4002477e0ea2c6ee02ab
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/58202
Pigweed-Auto-Submit: Ewout van Bekkum <ewout@google.com>
Commit-Queue: Ewout van Bekkum <ewout@google.com>
Reviewed-by: Keir Mierle <keir@google.com>
diff --git a/pw_sync/BUILD.bazel b/pw_sync/BUILD.bazel
index c8cbe1c..d395863 100644
--- a/pw_sync/BUILD.bazel
+++ b/pw_sync/BUILD.bazel
@@ -115,10 +115,23 @@
],
includes = ["public"],
deps = [
+ ":virtual_basic_lockable",
"//pw_assert",
],
)
+pw_cc_library(
+ name = "virtual_basic_lockable",
+ hdrs = [
+ "public/pw_sync/virtual_basic_lockable.h",
+ ],
+ includes = ["public"],
+ deps = [
+ ":lock_annotations",
+ "//pw_polyfill",
+ ],
+)
+
pw_cc_facade(
name = "mutex_facade",
hdrs = [
@@ -127,6 +140,7 @@
includes = ["public"],
deps = [
":lock_annotations",
+ ":virtual_basic_lockable",
"//pw_preprocessor",
],
)
@@ -163,6 +177,7 @@
deps = [
":lock_annotations",
":mutex_facade",
+ ":virtual_basic_lockable",
"//pw_chrono:system_clock",
"//pw_preprocessor",
],
@@ -176,6 +191,7 @@
deps = [
":mutex",
":timed_mutex_facade",
+ ":virtual_basic_lockable",
"@pigweed_config//:pw_sync_timed_mutex_backend",
],
)
@@ -200,6 +216,7 @@
includes = ["public"],
deps = [
":lock_annotations",
+ ":virtual_basic_lockable",
"//pw_preprocessor",
],
)
@@ -350,6 +367,7 @@
],
deps = [
":borrow",
+ ":virtual_basic_lockable",
"//pw_assert",
"//pw_unit_test",
],