src/os/bsd/vm/os_bsd.cpp

Print this page
rev 3111 : imported patch osx-threadid

@@ -977,12 +977,12 @@
     sync->notify_all();
     return NULL;
   }
 
 #ifdef _ALLBSD_SOURCE
-  // thread_id is pthread_id on BSD
-  osthread->set_thread_id(::pthread_self());
+  // thread_id is mach thread on BSD
+  osthread->set_thread_id(::mach_thread_self());
 #else
   // thread_id is kernel thread id (similar to Solaris LWP id)
   osthread->set_thread_id(os::Bsd::gettid());
 
   if (UseNUMA) {

@@ -1169,11 +1169,11 @@
     return false;
   }
 
   // Store pthread info into the OSThread
 #ifdef _ALLBSD_SOURCE
-  osthread->set_thread_id(::pthread_self());
+  osthread->set_thread_id(::mach_thread_self());
 #else
   osthread->set_thread_id(os::Bsd::gettid());
 #endif
   osthread->set_pthread_id(::pthread_self());
 

@@ -1786,11 +1786,11 @@
   ::strncpy(buf, s, n);
   buf[n] = '\0';
   return n;
 }
 
-intx os::current_thread_id() { return (intx)pthread_self(); }
+intx os::current_thread_id() { return (intx)::mach_thread_self(); }
 int os::current_process_id() {
 
   // Under the old bsd thread library, bsd gives each thread
   // its own process id. Because of this each thread will return
   // a different pid if this method were to return the result

@@ -5131,13 +5131,13 @@
 jlong os::thread_cpu_time(Thread *thread, bool user_sys_cpu_time) {
 #ifdef __APPLE__
   struct thread_basic_info tinfo;
   mach_msg_type_number_t tcount = THREAD_INFO_MAX;
   kern_return_t kr;
-  mach_port_t mach_thread;
+  thread_t mach_thread;
 
-  mach_thread = pthread_mach_thread_np(thread->osthread()->thread_id());
+  mach_thread = thread->osthread()->thread_id();
   kr = thread_info(mach_thread, THREAD_BASIC_INFO, (thread_info_t)&tinfo, &tcount);
   if (kr != KERN_SUCCESS)
     return -1;
 
   if (user_sys_cpu_time) {