folly: wangle: NamedThreadFactory: store of the thread prefix locally, don't assume...
authorLucian Grijincu <lucian@fb.com>
Wed, 5 Nov 2014 00:51:03 +0000 (16:51 -0800)
committerPavlo Kushnir <pavlo@fb.com>
Sat, 8 Nov 2014 02:35:52 +0000 (18:35 -0800)
Summary: There's no real reason to store this as a StringPiece, is there?

Test Plan: n/a

Reviewed By: sdoroshenko@fb.com, robot9@fb.com

Subscribers: fugalh, njormrod, folly-diffs@

FB internal diff: D1659558

Tasks: 5538418

Signature: t1:1659558:1415147560:2c5b0c996893854c3ea9d0ad02b006bcc5960ffa

folly/experimental/wangle/concurrent/NamedThreadFactory.h

index e01b87554683415f0ff68ce9228f02dae4f8f284..3a6ed05bcd17450e1d3635d53eda4889902efab0 100644 (file)
  */
 
 #pragma once
+
+#include <atomic>
+#include <string>
+#include <thread>
+
 #include <folly/experimental/wangle/concurrent/ThreadFactory.h>
 #include <folly/Conv.h>
+#include <folly/Range.h>
 #include <folly/ThreadName.h>
 
 namespace folly { namespace wangle {
@@ -24,9 +30,9 @@ namespace folly { namespace wangle {
 class NamedThreadFactory : public ThreadFactory {
  public:
   explicit NamedThreadFactory(folly::StringPiece prefix)
-    : prefix_(std::move(prefix)), suffix_(0) {}
+    : prefix_(prefix.str()), suffix_(0) {}
 
-  virtual std::thread newThread(Func&& func) override {
+  std::thread newThread(Func&& func) override {
     auto thread = std::thread(std::move(func));
     folly::setThreadName(
         thread.native_handle(),
@@ -35,11 +41,11 @@ class NamedThreadFactory : public ThreadFactory {
   }
 
   void setNamePrefix(folly::StringPiece prefix) {
-    prefix_ = std::move(prefix);
+    prefix_ = prefix.str();
   }
 
  private:
-  folly::StringPiece prefix_;
+  std::string prefix_;
   std::atomic<uint64_t> suffix_;
 };