#ifndef LLDB_THREAD_H
#define LLDB_THREAD_H

#include <stdint.h>

#if defined(__APPLE__)
__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2)
int pthread_threadid_np(pthread_t, __uint64_t *);
#elif defined(__linux__)
#include <sys/syscall.h>
#include <unistd.h>
#elif defined(__NetBSD__)
#include <lwp.h>
#elif defined(_WIN32)
#include <windows.h>
#endif

inline uint64_t get_thread_id() {
#if defined(__APPLE__)
  __uint64_t tid = 0;
  pthread_threadid_np(pthread_self(), &tid);
  return tid;
#elif defined(__linux__)
  return syscall(__NR_gettid);
#elif defined(__NetBSD__)
  // Technically lwpid_t is 32-bit signed integer
  return static_cast<uint64_t>(_lwp_self());
#elif defined(_WIN32)
  return static_cast<uint64_t>(::GetCurrentThreadId());
#else
  return -1;
#endif
}

#endif // LLDB_THREAD_H
