diff --git a/thread_pthread.c b/thread_pthread.c index 1ca805843e..2435606132 100644 --- a/thread_pthread.c +++ b/thread_pthread.c @@ -70,11 +70,18 @@ static const void *const condattr_monotonic = NULL; // #define HAVE_SYS_EPOLL_H 0 #endif -#if HAVE_SYS_EPOLL_H && !defined(COROUTINE_PTHREAD_CONTEXT) - #include - #define USE_MN_THREADS 1 -#else - #define USE_MN_THREADS 0 +#ifndef USE_MN_THREADS + #if defined(__EMSCRIPTEN__) || defined(COROUTINE_PTHREAD_CONTEXT) || defined(NON_SCALAR_THREAD_ID) + // on __EMSCRIPTEN__ provides epoll* declarations, but no implementations. + // on COROUTINE_PTHREAD_CONTEXT, it doesn't worth to use it. + // on NON_SCALAR_THREAD_ID, now we can not debug issues on x390s/Ubuntu so skip it. + #define USE_MN_THREADS 0 + #elif HAVE_SYS_EPOLL_H + #include + #define USE_MN_THREADS 1 + #else + #define USE_MN_THREADS 0 + #endif #endif // native thread wrappers