pw_router: add lock safety annotations
No-Docs-Update-Reason: No functional change.
Change-Id: If5a3b06e831baedd1fbd952fedda31fe1ebe6662
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/40246
Pigweed-Auto-Submit: Ewout van Bekkum <ewout@google.com>
Commit-Queue: Ewout van Bekkum <ewout@google.com>
Reviewed-by: Wyatt Hepler <hepler@google.com>
Reviewed-by: Alexei Frolov <frolv@google.com>
diff --git a/pw_router/BUILD.gn b/pw_router/BUILD.gn
index a30eb7a..bcf934a 100644
--- a/pw_router/BUILD.gn
+++ b/pw_router/BUILD.gn
@@ -30,6 +30,7 @@
public_deps = [
":egress",
":packet_parser",
+ "$dir_pw_sync:lock_annotations",
"$dir_pw_sync:mutex",
dir_pw_metric,
]
diff --git a/pw_router/public/pw_router/static_router.h b/pw_router/public/pw_router/static_router.h
index 6697456..9c0925d 100644
--- a/pw_router/public/pw_router/static_router.h
+++ b/pw_router/public/pw_router/static_router.h
@@ -20,6 +20,7 @@
#include "pw_router/egress.h"
#include "pw_router/packet_parser.h"
#include "pw_status/status.h"
+#include "pw_sync/lock_annotations.h"
#include "pw_sync/mutex.h"
namespace pw::router {
@@ -62,11 +63,11 @@
// NOT_FOUND - No registered route for the packet.
// UNAVAILABLE - Route egress did not accept packet.
//
- Status RoutePacket(ConstByteSpan packet);
+ Status RoutePacket(ConstByteSpan packet) PW_LOCKS_EXCLUDED(mutex_);
private:
- PacketParser& parser_;
- std::span<const Route> routes_;
+ PacketParser& parser_ PW_GUARDED_BY(mutex_);
+ const std::span<const Route> routes_;
sync::Mutex mutex_;
PW_METRIC_GROUP(metrics_, "static_router");
PW_METRIC(metrics_, parser_errors_, "parser_errors", 0u);