1
0

ThreadLocalStorage.cpp 662 B

1234567891011121314151617181920212223242526272829303132
  1. #include "ThreadLocalStorage.h"
  2. #include "hthread.h"
  3. namespace hv {
  4. ThreadLocalStorage ThreadLocalStorage::tls[ThreadLocalStorage::MAX_NUM];
  5. void ThreadLocalStorage::set(int idx, void* val) {
  6. return tls[idx].set(val);
  7. }
  8. void* ThreadLocalStorage::get(int idx) {
  9. return tls[idx].get();
  10. }
  11. void ThreadLocalStorage::setThreadName(const char* name) {
  12. set(THREAD_NAME, (void*)name);
  13. }
  14. const char* ThreadLocalStorage::threadName() {
  15. void* value = get(THREAD_NAME);
  16. if (value) {
  17. return (char*)value;
  18. }
  19. static char unnamed[32] = {0};
  20. snprintf(unnamed, sizeof(unnamed)-1, "thread-%ld", hv_gettid());
  21. return unnamed;
  22. }
  23. }