1

我正在为我的第一个支持多线程的工具编写代码,但我也想为 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 也很陌生,所以我希望你在回答我时会考虑到这一点。

4

0 回答 0