From: Yedidya Feldblum Date: Wed, 18 Oct 2017 02:28:49 +0000 (-0700) Subject: Simplify impl of setThreadName X-Git-Tag: v2017.10.23.00~31 X-Git-Url: http://plrg.eecs.uci.edu/git/?p=folly.git;a=commitdiff_plain;h=bf58d50a14cf4e0f79ce9765c2facf3d0691856f Simplify impl of setThreadName Summary: [Folly] Simplify impl of `setThreadName`. Reviewed By: Orvid, ot Differential Revision: D6075179 fbshipit-source-id: 720f29cc688f97b936813898238b8eb26b8a6141 --- diff --git a/folly/ThreadName.cpp b/folly/ThreadName.cpp index ed11c10e..abc7eaad 100644 --- a/folly/ThreadName.cpp +++ b/folly/ThreadName.cpp @@ -102,20 +102,17 @@ bool setThreadName(std::thread::id tid, StringPiece name) { #if !FOLLY_HAVE_PTHREAD || _WIN32 return false; #else - auto const piece = name.subpiece(0, kMaxThreadNameLength - 1); - auto const data = piece.data(); - auto const size = piece.size(); - char trimmedName[kMaxThreadNameLength]; - std::memcpy(trimmedName, data, size); - std::memset(trimmedName + size, 0, kMaxThreadNameLength - size); + name = name.subpiece(0, kMaxThreadNameLength - 1); + char buf[kMaxThreadNameLength] = {}; + std::memcpy(buf, name.data(), name.size()); auto id = stdTidToPthreadId(tid); #if FOLLY_HAS_PTHREAD_SETNAME_NP_THREAD_NAME - return 0 == pthread_setname_np(id, const_cast(trimmedName)); + return 0 == pthread_setname_np(id, buf); #elif FOLLY_HAS_PTHREAD_SETNAME_NP_NAME // Since OS X 10.6 it is possible for a thread to set its own name, // but not that of some other thread. if (pthread_equal(pthread_self(), id)) { - return 0 == pthread_setname_np(const_cast(trimmedName)); + return 0 == pthread_setname_np(buf); } return false; #else