Fix thread name updating in Linux. "thread list" should report correct names always now.
Created new LinuxThread class inherited from POSIXThread and removed linux / freebsd ifdefs
Removed several un-needed set thread name calls

CR (and multiple suggestions): mkopec

llvm-svn: 187545
diff --git a/lldb/source/Plugins/Process/POSIX/ProcessPOSIX.cpp b/lldb/source/Plugins/Process/POSIX/ProcessPOSIX.cpp
index 1cba5f1..545e792 100644
--- a/lldb/source/Plugins/Process/POSIX/ProcessPOSIX.cpp
+++ b/lldb/source/Plugins/Process/POSIX/ProcessPOSIX.cpp
@@ -479,6 +479,12 @@
     return added_to_set;
 }
 
+POSIXThread *
+ProcessPOSIX::CreateNewPOSIXThread(lldb_private::Process &process, lldb::tid_t tid)
+{
+    return new POSIXThread(process, tid);
+}
+
 void
 ProcessPOSIX::RefreshStateAfterStop()
 {
@@ -508,10 +514,7 @@
                 log->Printf ("ProcessPOSIX::%s() adding thread, tid = %" PRIi64, __FUNCTION__, message.GetChildTID());
             lldb::tid_t child_tid = message.GetChildTID();
             ThreadSP thread_sp;
-            thread_sp.reset(new POSIXThread(*this, child_tid));
-
-            POSIXThread *thread = static_cast<POSIXThread*>(thread_sp.get());
-            thread->SetName(Host::GetThreadName(GetID(), child_tid).c_str());
+            thread_sp.reset(CreateNewPOSIXThread(*this, child_tid));
 
             Mutex::Locker lock(m_thread_list.GetMutex());
 
@@ -821,7 +824,7 @@
     assert(m_monitor);
     ThreadSP thread_sp (old_thread_list.FindThreadByID (GetID(), false));
     if (!thread_sp) {
-        thread_sp.reset(new POSIXThread(*this, GetID()));
+        thread_sp.reset(CreateNewPOSIXThread(*this, GetID()));
     }
 
     if (log && log->GetMask().Test(POSIX_LOG_VERBOSE))