如果该函数得到信号量,那么它将返回等待该信号量的时间。当该信号量可以马上得到时,该函数返回0值。
笔记:在sys.c中有另一个函数sys_sem_wait,该函数是对 sys_arch_sem_wait函数的封装。注意,对信号量来说返回精确的已等待时间是很重要的,由于它们经常被使用来调度定时器。查看下面的章节来获取更多的信息。
邮箱:
邮箱被使用来传输信息并且可以被一个队列(允许多个消息被传递给该邮箱)来实现,或者约定一次只能有一个消息被传输。lwIP在这2种机制下都能正常工作,前者的效率会更高。在邮箱里消息只是一个指针,并没有其它更多的东西。邮箱被sys_mbox_t所描述。lwIP并不会限制如何描述sys_mbox_t,但是它是一个典型的指向结构体类型(该结构体是对操作系统原始的邮箱类型和它的队列缓存的封装)的指针。如下一些函数一定要被定义:
sys_mbox_t sys_mbox_new(int size):返回一个新的邮箱或者SYS_MBOX_NULL(当发生错误时)。
void sys_mbox_free(sys_mbox_t mbox):释放一个邮箱。如果在该邮箱里存在消息且当它要被释放时,它将会提示一个编程错误,这样开发者就会注意到了。