disable MN schedulers for some platforms

* on `__EMSCRIPTEN__` provides epoll* declarations, but no implementations.
* on `NON_SCALAR_THREAD_ID`, now we can not debug issues on x390s/Ubuntu so skip it.

x390s/RHEL works fine, so I think we can remove second limitation but
I could not login to it so it seems hard to debug now.
This commit is contained in:
Koichi Sasada 2023-10-13 23:53:59 +09:00
Родитель 5808999d30
Коммит 62dfaeec2c
1 изменённых файлов: 12 добавлений и 5 удалений

Просмотреть файл

@ -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 <sys/epoll.h>
#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 <sys/epoll.h>
#define USE_MN_THREADS 1
#else
#define USE_MN_THREADS 0
#endif
#endif
// native thread wrappers