Support old Mac OS X
`pthread_threadid_np` is available since Mac OS X 10.6, use `pthread_mach_thread_np` on older systems.
This commit is contained in:
parent
218e8bdcb0
commit
9134e76140
@ -40,6 +40,10 @@
|
|||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
|
||||||
|
#if defined __APPLE__
|
||||||
|
# include <AvailabilityMacros.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(HAVE_SYS_EVENTFD_H) && defined(HAVE_EVENTFD)
|
#if defined(HAVE_SYS_EVENTFD_H) && defined(HAVE_EVENTFD)
|
||||||
# define USE_EVENTFD (1)
|
# define USE_EVENTFD (1)
|
||||||
# include <sys/eventfd.h>
|
# include <sys/eventfd.h>
|
||||||
@ -1766,6 +1770,10 @@ native_thread_native_thread_id(rb_thread_t *target_th)
|
|||||||
return INT2FIX(tid);
|
return INT2FIX(tid);
|
||||||
#elif defined(__APPLE__)
|
#elif defined(__APPLE__)
|
||||||
uint64_t tid;
|
uint64_t tid;
|
||||||
|
if (MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_6 ||
|
||||||
|
!&pthread_threadid_np /* check weakly linked symbol */) {
|
||||||
|
return ULL2NUM(pthread_mach_thread_np(pthread_self()));
|
||||||
|
}
|
||||||
int e = pthread_threadid_np(target_th->nt->thread_id, &tid);
|
int e = pthread_threadid_np(target_th->nt->thread_id, &tid);
|
||||||
if (e != 0) rb_syserr_fail(e, "pthread_threadid_np");
|
if (e != 0) rb_syserr_fail(e, "pthread_threadid_np");
|
||||||
return ULL2NUM((unsigned long long)tid);
|
return ULL2NUM((unsigned long long)tid);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user