我正在查看wait_event_timeout
宏(在wait.h中)并且无法理解它是否总是在返回之前检查条件。
是否可以保证,如果超时已经过期且条件为真,则它永远不会返回零?
这个宏很难理解。也许我需要编写一个演示来证明这一点....任何人都可以提供一个简单而有说服力的例子吗?
- dd
答案 0 :(得分:0)
答案似乎是这样的:
html {height: 100%;}
body{
background-color: #222222;
font-family: 'PT Sans Narrow', sans-serif;
}
.wrapper {
margin: 0 auto;
width: 960px;/*1688px*/
height: 100%;
background-color:#b3ffb3;
}
.rightColumn{
float: left;
width: 70px;
height: 100%;
border: 1px sold gray;
background-color:#fff;
}
/* This is the center column */
.centerBox{
float:left;
width: 820px;
height: 100%;
border: 1px sold gray;
background-color:#fff;
overflow: hidden;
行为的关键变化发生在内核版本3.10周围。
在此更改之前,wait_event_timeout
将返回0,如果事件从未发出信号,并且有必要手动重新检查条件,以防它以某种方式变为真(通过中断,另一个线程等等)上)。
在此版本之后,如果事件从未发出信号,wait_event_timeout
将返回1,但指定的条件仍为真。 API会在超时到期后执行条件检查。
wait.h中此API的文档描述了自3.18版以来明确的新行为。
感谢所有有意帮助的人:) - dd