B_QuRT_User_Guide(12)
8 Signals
线程使用信号来根据一个或多个内部事件的发生来同步其执行。
如果一个线程在一个信号对象上等待指定的信号集中的任何一个被设置,并且这些信号中的一个或多个被设置在信号对象中,那么这个线程就被唤醒了。
如果一个线程在一个信号对象上等待所有指定的信号集被设置,并且所有这些信号在信号对象中被设置,那么这个线程就被唤醒了。
一个信号对象包含32个信号,这些信号在一个32位的数值中被表示为0-31位。位值1表示一个信号被设置,0表示被清除。
注意:在任何时候,最多只有一个线程可以在一个信号对象上等待。
qurt_signal_wait()和qurt_signal_wait_cancellable()函数根据其等待类型参数,等待任何或所有信号。信号被存储在共享对象中,支持以下操作。
- qurt_signal_clear()
- qurt_signal_destroy()
- qurt_signal_get()
- qurt_signal_init()
- qurt_signal_set()
- qurt_signal_wait()
- qurt_signal_wait_all()
- qurt_signal_wait_any()
- qurt_signal_wait_cancellable() - qurt_signal_wait_timed()
- qurt_signal_64_init()
- qurt_signal_64_destroy()
- qurt_signal_64_wait()
- qurt_signal_64_set()
- qurt_signal_64_get()
- qurt_signal_64_clear()
- Data Types
8.1 qurt_signal_clear()
8.1.1 Function Documentation
8.1.1.1 void qurt_signal_clear ( qurt_signal_t ∗ signal, unsigned int mask )
清除指定信号对象中的信号。
信号在32位掩码值中表示为第0到31位。掩码位值为1表示必须清除一个信号,0表示不清除。
注意:信号必须由线程在被唤醒时明确地清除–等待操作不会自动清除它们。
相关数据类型
qurt_signal_t
参数
返回值
None.
依赖关系
None.
8.2 qurt_signal_destroy()
8.2.1 Function Documentation
8.2.1.1 void qurt_signal_destroy ( qurt_signal_t ∗ signal )
销毁指定的信号对象。
注意:当信号对象不再被使用时,必须将其销毁。如果不这样做会导致QuRT内核的资源泄漏。
信号对象不能在仍在使用中时被销毁。如果发生这种情况,QuRT的行为将无法定义。
相关数据类型
qurt_signal_t
参数
返回值
None.
依赖关系
None.
8.3 qurt_signal_get()
8.3.1 Function Documentation
8.3.1.1 unsigned int qurt_signal_get ( qurt_signal_t ∗ signal )
从一个信号对象中获取一个信号。
返回指定信号对象的当前信号值。
相关数据类型
qurt_signal_t
参数
返回值
A 32-bit word with current signals.
依赖关系
None.
8.4 qurt_signal_init()
8.4.1 Function Documentation
8.4.1.1 void qurt_signal_init ( qurt_signal_t ∗ signal )
初始化一个信号对象。信号返回初始化的对象。信号对象最初被清空。
注意:每个基于信号的对象都有一个或多个与之相关的内核资源;为了防止资源泄漏,当这个对象不再被使用时,请调用qurt_signal_destroy()。
相关数据类型
qurt_signal_t
参数
返回值
None.
依赖关系
None.
8.5 qurt_signal_set()
8.5.1 Function Documentation
8.5.1.1 void qurt_signal_set ( qurt_signal_t ∗ signal, unsigned int mask )
设置指定信号对象中的信号。
信号在32位掩码值中表示为0到31位。掩码位值为1表示设置该信号,0表示不设置该信号。
相关数据类型
qurt_signal_t
参数
返回值
None.
依赖关系
None.