From c061c8a8714d82246a548fb24c81d98129f831c6 Mon Sep 17 00:00:00 2001 From: Meco Man <920369182@qq.com> Date: Tue, 1 Jun 2021 11:24:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0rt=5Fmb=5Furgent=20api?= =?UTF-8?q?=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../programming-manual/ipc2/ipc2.md | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) 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 b6f36af..9e8e369 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)。 - -- Gitee