summaryrefslogtreecommitdiffstats
path: root/third_party/leveldatabase
diff options
context:
space:
mode:
authorjsbell@chromium.org <jsbell@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-12 23:50:36 +0000
committerjsbell@chromium.org <jsbell@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-12 23:50:36 +0000
commit5dfc996c51552de609ce25b18ed7305d070a9d51 (patch)
tree0af2322b056ad527526b437108c6ffae192c0e66 /third_party/leveldatabase
parent51e05a85adc15d89600017ffabab649e179fd726 (diff)
downloadchromium_src-5dfc996c51552de609ce25b18ed7305d070a9d51.zip
chromium_src-5dfc996c51552de609ce25b18ed7305d070a9d51.tar.gz
chromium_src-5dfc996c51552de609ce25b18ed7305d070a9d51.tar.bz2
Add chrome://tracing entries for leveldb background threads
R=dgrogan@chromium.org Review URL: https://codereview.chromium.org/13956014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194052 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'third_party/leveldatabase')
-rw-r--r--third_party/leveldatabase/README.chromium1
-rw-r--r--third_party/leveldatabase/env_chromium.cc14
2 files changed, 12 insertions, 3 deletions
diff --git a/third_party/leveldatabase/README.chromium b/third_party/leveldatabase/README.chromium
index fef5789..80f0e1f 100644
--- a/third_party/leveldatabase/README.chromium
+++ b/third_party/leveldatabase/README.chromium
@@ -20,3 +20,4 @@ Local Additions:
other LevelDB consumers.
* ChromiumEnv wraps low-level I/O calls that may be interrupted with a
HANDLE_EINTR macro that retries the call.
+* TRACE macros/thread name for chrome://tracing diagnostics
diff --git a/third_party/leveldatabase/env_chromium.cc b/third_party/leveldatabase/env_chromium.cc
index 6ecdfb1..d50fe9e 100644
--- a/third_party/leveldatabase/env_chromium.cc
+++ b/third_party/leveldatabase/env_chromium.cc
@@ -8,6 +8,7 @@
#include <deque>
#include "base/at_exit.h"
+#include "base/debug/trace_event.h"
#include "base/file_util.h"
#include "base/files/file_path.h"
#include "base/lazy_instance.h"
@@ -671,6 +672,8 @@ class ChromiumEnv : public Env, public UMALogger {
MethodID method,
int limit);
+ std::string name_;
+
private:
const int kMaxRenameTimeMillis;
// BGThread() is the body of the background thread
@@ -699,11 +702,12 @@ class ChromiumEnv : public Env, public UMALogger {
};
ChromiumEnv::ChromiumEnv()
- : page_size_(::base::SysInfo::VMAllocationGranularity()),
+ : name_("LevelDBEnv"),
+ page_size_(::base::SysInfo::VMAllocationGranularity()),
bgsignal_(&mu_),
started_bgthread_(false),
kMaxRenameTimeMillis(1000) {
- InitHistograms("LevelDBEnv");
+ InitHistograms(name_);
}
void ChromiumEnv::MakePlatformFileErrorHistogram(
@@ -803,6 +807,8 @@ void ChromiumEnv::Schedule(void (*function)(void*), void* arg) {
}
void ChromiumEnv::BGThread() {
+ base::PlatformThread::SetName(name_.c_str());
+
while (true) {
// Wait until there is an item that is ready to run
mu_.Acquire();
@@ -815,6 +821,7 @@ void ChromiumEnv::BGThread() {
queue_.pop_front();
mu_.Release();
+ TRACE_EVENT0("leveldb", "ChromiumEnv::BGThread-Task");
(*function)(arg);
}
}
@@ -826,7 +833,8 @@ void ChromiumEnv::StartThread(void (*function)(void* arg), void* arg) {
class IDBEnv : public ChromiumEnv {
public:
IDBEnv() : ChromiumEnv() {
- InitHistograms("LevelDBEnv.IDB");
+ name_ = "LevelDBEnv.IDB";
+ InitHistograms(name_);
}
};