信号量
信号量可以是计数的也可以是二进制的。信号量被类型sys_sem_t所描述,该类型在sys_arch.h文件中被定义。lwIP并不会限制sys_sem_t是如何被定义或描述,它是一个指向操作系统的信号量或对操作系统信号量封装的结构体。如下一些函数一定要被定义:
sys_sem_t sys_sem_new(u8_t count):创建并返回一个新的信号量。count参数指定了信号量的初始化状态。该函数返回一个信号量或者SYS_SEM_NULL(当发生错误时)。
void sys_sem_free(sys_sem_t sem):释放一个被sys_sem_new创建的信号量。由于这两个函数提供了LwIP信号量的进入和退出,你有很大的灵活度来如何分配或解除这些信号量(比如,从堆,一个内存池,一个信号量的池,等等)。
void sys_sem_signal(sys_sem_t sem):发送(或释放)一个信号量。
u32_t sys_arch_sem_wait(sys_sem_t sem,u32_t timeout):阻塞线程直到该信号量被通知。timeout参数指定该函数在返回前要被阻塞多少毫秒。如果时间到了,该函数将返回SYS_ARCH_TIMEOUT。如果timeout等于0,那么该函数会被永远阻塞直到被信号量通知。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库LwIP Platform Developers Manual 中文翻译(13)在线全文阅读。
相关推荐: