Semaphore_create导致内核崩溃

时间:2019-04-11 08:20:41

标签: macos locking semaphore kernel-extension

我正在开发内核扩展。我需要使用等待和信号机制来等待特定事件(编程逻辑)。我正在尝试使用信号量作为内核扩展的一部分,以实现等待和信号方法。

信号量的创建引起内核恐慌。需要帮助找出正确的实施方案。让我知道我是否使用错了它,或者还有其他更简单的机制可以等待并发信号通知内核开发。

我正在使用的当前代码。

semaphore_t CreateWaitEvent() {

    semaphore_t sema;
    //The below semaphore_create line is causing the kernel panic
    if (semaphore_create(current_task(), &sema, SYNC_POLICY_FIFO, 0) != KERN_SUCCESS){
       return NULL;
    }
    return sema;
}

void Wait(semaphore_t event) {
    semaphore_wait(event);
}

void Signal(semaphore_t event) {
    semaphore_signal(event);
}

我正在使用MacBookPro上的并行软件在VM上运行此内核扩展。我已启用内核调试。

不知道我在做错什么导致内核恐慌。

0 个答案:

没有答案