0404
来源:互联网 发布:php程序是什么 编辑:程序博客网 时间:2024/06/05 16:28
建立一个邮箱,OSMboxCreate()
程序清单 L6.14是OSMboxCreate()函数的源代码,基本上和函数OSSemCreate()相似。不同之处在于事件控制块的类型被设置成OS_EVENT_TYPE_MBOX[L6.14(1)],以及使用.OSEventPtr域来容纳消息指针,而不是使用.OSEventCnt域[L6.14(2)]。
OSMboxCreate()函数的返回值是一个指向事件控制块的指针[L6.14(3)]。这个指针在调用函数OSMboxPend(),OSMboxPost(),OSMboxAccept()和OSMboxQuery()时使用。因此,该指针可以看作是对应邮箱的句柄。值得注意的是,如果系统中已经没有事件控制块可用,函数OSMboxCreate()将返回一个NULL指针。
邮箱一旦建立,是不能被删除的。比如,如果有任务正在等待一个邮箱的信息,这时删除该邮箱,将有可能产生灾难性的后果。
程序清单 L6.14 建立一个邮箱
OS_EVENT *OSMboxCreate (void *msg)
{
OS_EVENT *pevent;
OS_ENTER_CRITICAL();
pevent = OSEventFreeList;
if (OSEventFreeList != (OS_EVENT *)0) {
OSEventFreeList = (OS_EVENT *)OSEventFreeList->OSEventPtr;
}
OS_EXIT_CRITICAL();
if (pevent != (OS_EVENT *)0) {
pevent->OSEventType = OS_EVENT_TYPE_MBOX; (1)
pevent->OSEventPtr = msg; (2)
OSEventWaitListInit(pevent);
}
return (pevent); (3)
}
- 0404
- 文章0404
- 第十二天总结0404
- java随时感悟0404
- 编程笔记 0404
- microstation level2 0404
- 基于visual Studio2013解决C语言竞赛题之0404循环求和
- 一切成功源于积累——20140402 耍宝的美日 搭塔 0402-0403-0404
- C++ 黑框框小游戏(1)—— 推箱子
- 【OpenCV】SIFT原理与源码分析
- 算法导论 练习题 5.3-2
- opencv:视频去黑暗(增强)
- 删除链表中倒数第n个节点
- 0404
- POJ1017_Packets_贪心
- java学习笔记3.29 3.30
- html页面传值问题已解决
- tip2——鼠标按下改变RelativeLayout背景颜色,松开变回
- 算法训练 连接字符串
- Windows Power Shell
- 序列
- 清明三日总结