--- a/src/libtsduck/base/system/tsThread.cpp +++ b/src/libtsduck/base/system/tsThread.cpp @@ -114,7 +114,7 @@ { #if defined(TS_WINDOWS) ::SwitchToThread(); -#elif defined(TS_MAC) || defined(_GLIBCXX_USE_SCHED_YIELD) +#elif defined(TS_MAC) || defined(_GLIBCXX_USE_SCHED_YIELD) || defined(__ANDROID__) ::sched_yield(); #else ::pthread_yield(); @@ -254,11 +254,13 @@ return false; } +#if !defined __ANDROID__ || __ANDROID_API__ >= 28 // Use explicit scheduling attributes, do not inherit them from the current thread. if (::pthread_attr_setinheritsched(&attr, PTHREAD_EXPLICIT_SCHED) != 0) { ::pthread_attr_destroy(&attr); return false; } +#endif // Create the thread if (::pthread_create(&_pthread, &attr, Thread::ThreadProc, this) != 0) {