From 773fa87ac372ce5c920d3caf1021656145f2b00f Mon Sep 17 00:00:00 2001 From: Lucian Grijincu Date: Tue, 4 Nov 2014 16:51:03 -0800 Subject: [PATCH] folly: wangle: NamedThreadFactory: store of the thread prefix locally, don't assume they'll live forever 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 --- .../wangle/concurrent/NamedThreadFactory.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/folly/experimental/wangle/concurrent/NamedThreadFactory.h b/folly/experimental/wangle/concurrent/NamedThreadFactory.h index e01b8755..3a6ed05b 100644 --- a/folly/experimental/wangle/concurrent/NamedThreadFactory.h +++ b/folly/experimental/wangle/concurrent/NamedThreadFactory.h @@ -15,8 +15,14 @@ */ #pragma once + +#include +#include +#include + #include #include +#include #include 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 suffix_; }; -- 2.34.1