我正在为我的第一个支持多线程的工具编写代码,但我也想为 Linux 和 Android 制作我的工具,并且pthread_cancel不能在 android 中使用,所以我正在尝试制作单独的头文件Universal -threading.h我将为 android 声明pthread_cancel函数。
因此,当它将在 Android 上编译时,universals-threading.h将被包括在内,否则不包括在内。
我还为 android 做了一个pthread_setcancelstate的函数这是片段
static int pthread_setcancelstate(int state, int *oldstate) {
sigset_t new, old;
int ret;
sigemptyset (&new);
sigaddset (&new, SIG_CANCEL_SIGNAL);
ret = pthread_sigmask(state == PTHREAD_CANCEL_ENABLE ? SIG_BLOCK : SIG_UNBLOCK, &new , &old);
if(oldstate != NULL)
{
*oldstate = sigismember(old,SIG_CANCEL_SIGNAL) == 0 ? PTHREAD_CANCEL_DISABLE : PTHREAD_CANCEL_ENABLE;
}
return ret;
}
但是现在我对 pthread_setcanceltype 函数感到困惑,所以如果您提供一个工作代码块或 pthread_setcanceltype android 版本的片段,这对我非常有帮助。
简而言之,我想为 android 创建一个假的 pthread_setcanceltype 函数
我不是专业的,它是我的第一个工具,而且我对线程和 pthreads 也很陌生,所以我希望你在回答我时会考虑到这一点。