@@ -56,7 +56,8 @@ using boost::core::detail::sp_thread_sleep;
#include <time.h>
-#if defined(BOOST_HAS_PTHREADS) && !defined(__ANDROID__)
+// OHOS musl, like Android bionic, does not provide pthread_setcancelstate
+#if defined(BOOST_HAS_PTHREADS) && !defined(__ANDROID__) && !defined(__OHOS__)
# include <pthread.h>
#endif
@@ -67,7 +68,7 @@ namespace core
inline void sp_thread_sleep() BOOST_NOEXCEPT
{
-#if defined(BOOST_HAS_PTHREADS) && !defined(__ANDROID__)
+#if defined(BOOST_HAS_PTHREADS) && !defined(__ANDROID__) && !defined(__OHOS__)
int oldst;
pthread_setcancelstate( PTHREAD_CANCEL_DISABLE, &oldst );
@@ -85,7 +86,7 @@ inline void sp_thread_sleep() BOOST_NOEXCEPT
nanosleep( &rqtp, 0 );
-#if defined(BOOST_HAS_PTHREADS) && !defined(__ANDROID__)
+#if defined(BOOST_HAS_PTHREADS) && !defined(__ANDROID__) && !defined(__OHOS__)
pthread_setcancelstate( oldst, &oldst );