Skip to content
Snippets Groups Projects
Commit 9aeb48bb authored by Chris Manton's avatar Chris Manton Committed by Gerrit Code Review
Browse files

Merge "Add ability to lock stack for dumpsys"

parents 707000d1 24cc6949
No related branches found
No related tags found
No related merge requests found
...@@ -16,12 +16,13 @@ ...@@ -16,12 +16,13 @@
#define LOG_TAG "bt_shim_storage" #define LOG_TAG "bt_shim_storage"
#include "main/shim/dumpsys.h"
#include <unordered_map> #include <unordered_map>
#include "main/shim/dumpsys.h"
#include "main/shim/entry.h" #include "main/shim/entry.h"
#include "main/shim/shim.h" #include "main/shim/shim.h"
#include "main/shim/stack.h"
#include "shim/dumpsys.h" #include "shim/dumpsys.h"
namespace { namespace {
...@@ -53,14 +54,16 @@ void bluetooth::shim::Dump(int fd, const char** args) { ...@@ -53,14 +54,16 @@ void bluetooth::shim::Dump(int fd, const char** args) {
dumpsys.second(fd); dumpsys.second(fd);
} }
} }
if (bluetooth::shim::is_gd_stack_started_up()) { bluetooth::shim::Stack::GetInstance()->LockForDumpsys([=]() {
if (bluetooth::shim::is_gd_dumpsys_module_started()) { if (bluetooth::shim::is_gd_stack_started_up()) {
bluetooth::shim::GetDumpsys()->Dump(fd, args); if (bluetooth::shim::is_gd_dumpsys_module_started()) {
bluetooth::shim::GetDumpsys()->Dump(fd, args);
} else {
dprintf(fd, "%s NOTE: gd dumpsys module not loaded or started\n",
kModuleName);
}
} else { } else {
dprintf(fd, "%s NOTE: gd dumpsys module not loaded or started\n", dprintf(fd, "%s gd stack is enabled but not started\n", kModuleName);
kModuleName);
} }
} else { });
dprintf(fd, "%s gd stack is enabled but not started\n", kModuleName);
}
} }
...@@ -317,5 +317,10 @@ bool Stack::IsDumpsysModuleStarted() const { ...@@ -317,5 +317,10 @@ bool Stack::IsDumpsysModuleStarted() const {
return GetStackManager()->IsStarted<Dumpsys>(); return GetStackManager()->IsStarted<Dumpsys>();
} }
void Stack::LockForDumpsys(std::function<void()> dumpsys_callback) {
std::lock_guard<std::recursive_mutex> lock(mutex_);
dumpsys_callback();
}
} // namespace shim } // namespace shim
} // namespace bluetooth } // namespace bluetooth
...@@ -16,17 +16,17 @@ ...@@ -16,17 +16,17 @@
#pragma once #pragma once
#include <functional>
#include <mutex> #include <mutex>
#include "main/shim/acl.h"
#include "main/shim/btm.h"
#include "main/shim/link_policy_interface.h"
#include "gd/module.h" #include "gd/module.h"
#include "gd/os/handler.h" #include "gd/os/handler.h"
#include "gd/os/thread.h" #include "gd/os/thread.h"
#include "gd/os/utils.h" #include "gd/os/utils.h"
#include "gd/stack_manager.h" #include "gd/stack_manager.h"
#include "main/shim/acl.h"
#include "main/shim/btm.h"
#include "main/shim/link_policy_interface.h"
#include "src/bridge.rs.h" #include "src/bridge.rs.h"
// The shim layer implementation on the Gd stack side. // The shim layer implementation on the Gd stack side.
...@@ -67,6 +67,8 @@ class Stack { ...@@ -67,6 +67,8 @@ class Stack {
return rust_controller_; return rust_controller_;
} }
void LockForDumpsys(std::function<void()> dumpsys_callback);
private: private:
mutable std::recursive_mutex mutex_; mutable std::recursive_mutex mutex_;
StackManager stack_manager_; StackManager stack_manager_;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment