diff --git a/rt-thread-version/rt-thread-standard/programming-manual/ipc2/ipc2.md b/rt-thread-version/rt-thread-standard/programming-manual/ipc2/ipc2.md index b6f36afd6030a3f361283a46b81d55824d75e2fb..9e8e369c28f55376205550c470cb73a630e438dd 100644 --- a/rt-thread-version/rt-thread-standard/programming-manual/ipc2/ipc2.md +++ b/rt-thread-version/rt-thread-standard/programming-manual/ipc2/ipc2.md @@ -173,6 +173,26 @@ rt_mb_send_wait() 与 rt_mb_send() 的区别在于有等待时间,如果邮箱 | \-RT_ETIMEOUT | 超时 | | \-RT_ERROR | 失败,返回错误 | +#### 发送紧急邮件 + +发送紧急邮件的过程与发送邮件几乎一样,唯一的不同是,当发送紧急邮件时,邮件被直接插队放入了邮件队首,这样,接收者就能够优先接收到紧急邮件,从而及时进行处理。发送紧急邮件的函数接口如下: + +```c +rt_err_t rt_mb_urgent (rt_mailbox_t mb, rt_ubase_t value); +``` + +下表描述了该函数的输入参数与返回值: + + rt_mb_urgent() 的输入参数和返回值 + +| **参数** | **描述** | +| ---------- | -------------- | +| mb | 邮箱对象的句柄 | +| value | 邮件内容 | +| **返回** | —— | +| RT_EOK | 发送成功 | +| \-RT_EFULL | 邮箱已满 | + #### 接收邮件 只有当接收者接收的邮箱中有邮件时,接收者才能立即取到邮件并返回 RT_EOK 的返回值,否则接收线程会根据超时时间设置,或挂起在邮箱的等待线程队列上,或直接返回。接收邮件函数接口如下: @@ -1065,4 +1085,3 @@ thread1 count : 9 例程中,首先线程安装信号并解除阻塞,然后发送信号给线程。线程接收到信号并打印出了接收到的信号:SIGUSR1(10)。 -