Give observer manager threads a name
authorHaijun Zhu <haijunz@fb.com>
Tue, 28 Feb 2017 06:45:34 +0000 (22:45 -0800)
committerFacebook Github Bot <facebook-github-bot@users.noreply.github.com>
Tue, 28 Feb 2017 06:49:47 +0000 (22:49 -0800)
Summary: As title, convenient for debugging. Asked for from D4542856

Reviewed By: nkg-

Differential Revision: D4618623

fbshipit-source-id: 21b86944f513da0700039a3e3736937fd72e8887

folly/experimental/observer/detail/ObserverManager.cpp

index f14b9092475f759c6b7d98203558fd6642180478..aea3eec0d9157c8689c0a18124fae14646cb9346 100644 (file)
 #include <folly/experimental/observer/detail/ObserverManager.h>
 
 #include <folly/ExceptionString.h>
+#include <folly/FixedString.h>
+#include <folly/Format.h>
 #include <folly/MPMCQueue.h>
 #include <folly/Singleton.h>
+#include <folly/ThreadName.h>
 #include <folly/portability/GFlags.h>
 
 namespace folly {
@@ -32,6 +35,9 @@ DEFINE_int32(
     4,
     "How many internal threads ObserverManager should use");
 
+static constexpr auto kObserverManagerThreadNamePrefix =
+    folly::makeFixedString("ObserverMngr");
+
 namespace {
 constexpr size_t kCurrentQueueSize{10 * 1024};
 constexpr size_t kNextQueueSize{10 * 1024};
@@ -45,7 +51,9 @@ class ObserverManager::CurrentQueue {
       FLAGS_observer_manager_pool_size = 1;
     }
     for (int32_t i = 0; i < FLAGS_observer_manager_pool_size; ++i) {
-      threads_.emplace_back([&]() {
+      threads_.emplace_back([this, i]() {
+        folly::setThreadName(
+            folly::sformat("{}{}", kObserverManagerThreadNamePrefix, i));
         ObserverManager::inManagerThread_ = true;
 
         while (true) {