1278332Semaste//===-- ThisThread.cpp ------------------------------------------*- C++ -*-===// 2278332Semaste// 3278332Semaste// The LLVM Compiler Infrastructure 4278332Semaste// 5278332Semaste// This file is distributed under the University of Illinois Open Source 6278332Semaste// License. See LICENSE.TXT for details. 7278332Semaste// 8278332Semaste//===----------------------------------------------------------------------===// 9278332Semaste 10278332Semaste#include "lldb/Host/HostNativeThread.h" 11278332Semaste#include "lldb/Host/ThisThread.h" 12278332Semaste 13278332Semaste#include "llvm/ADT/SmallVector.h" 14278332Semaste 15278332Semaste#include <pthread.h> 16288943Sdim#if defined (__FreeBSD__) 17278332Semaste#include <pthread_np.h> 18288943Sdim#endif 19278332Semaste 20278332Semasteusing namespace lldb_private; 21278332Semaste 22278332Semastevoid 23278332SemasteThisThread::SetName(llvm::StringRef name) 24278332Semaste{ 25288943Sdim#if defined (__FreeBSD__) // Kfreebsd does not have a simple alternative 26278332Semaste ::pthread_set_name_np(::pthread_self(), name.data()); 27288943Sdim#endif 28278332Semaste} 29278332Semaste 30278332Semastevoid 31278332SemasteThisThread::GetName(llvm::SmallVectorImpl<char> &name) 32278332Semaste{ 33288943Sdim#if defined (__FreeBSD__) 34278332Semaste HostNativeThread::GetName(::pthread_getthreadid_np(), name); 35288943Sdim#else 36288943Sdim// Kfreebsd 37288943Sdim HostNativeThread::GetName((unsigned)pthread_self(), name); 38288943Sdim#endif 39278332Semaste} 40