我正在做一个在内核和用户空间中都使用 RTAI 的大型项目。我不会详细介绍该项目,但这里简要介绍了出现问题的地方。
在用户空间,我的项目提供了一个库,供其他人用来编写一些软件。这些程序本身可能具有 RTAI 实时线程。
现在,RTAI 中的一些函数要求它们的调用线程已经ed,所以如果我想在库中的函数中使用它们,我需要通过调用和 laterrt_thread_init
临时使调用线程实时。rt_thread_init
rt_task_delete
现在问题来了:
如果我的函数的调用线程已经是实时的,那么我rt_thread_init
假设它只是失败了,但是然后我rt_task_delete
并使该线程成为非实时的(除了当线程本身(假设我什么都没改变)再次rt_task_delete
,RTAI 崩溃。
如果我的函数的调用线程不是实时的,一切都很好。
现在,我在函数中采用了一个参数,以便调用函数告诉库它是否是实时的。但是,我想知道 RTAI 是否有功能或其他东西,以便我可以用来自动检测当前线程是否是实时的。
不知道这里有没有 RTAI 用户(我当然没看到 RTAI 标签),但希望有。