Thread.cpp 761 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. // Copyright (C) 2009-present, Panagiotis Christopoulos Charitos and contributors.
  2. // All rights reserved.
  3. // Code licensed under the BSD License.
  4. // http://www.anki3d.org/LICENSE
  5. #include <AnKi/Util/Thread.h>
  6. namespace anki {
  7. thread_local Array<Char, Thread::kThreadNameMaxLength + 1> Thread::m_nameTls = {};
  8. Thread::Thread(const Char* name)
  9. {
  10. if(name)
  11. {
  12. PtrSize len = strlen(name);
  13. len = min<PtrSize>(len, kThreadNameMaxLength);
  14. memcpy(&m_name[0], &name[0], len);
  15. m_name[len] = '\0';
  16. }
  17. else
  18. {
  19. memcpy(&m_name[0], kDefaultThreadName, strlen(kDefaultThreadName) + 1);
  20. }
  21. }
  22. const Char* Thread::getCurrentThreadName()
  23. {
  24. if(m_nameTls[0] == '\0')
  25. {
  26. return kDefaultThreadName;
  27. }
  28. else
  29. {
  30. return &m_nameTls[0];
  31. }
  32. }
  33. } // end namespace anki