在请求中将相同的对象提交给clock_nanosleep并保留参数是否安全?
do {
ret = clock_nanosleep(CLOCK_MONOTONIC, 0, &t, &t);
} while (ret == EINTR);
我目前正在研究一种现象,该现象有时使系统永远不会离开该循环(尽管通常如此)。
致谢
答案 0 :(得分:1)
在请求中将相同的对象提交给clock_nanosleep并保留参数是否安全?
至少在符合POSIX的环境中,这很好。
rqtp和rmtp参数可以指向同一对象。
特别是对于LINUX,我在本地联机帮助页中看不到任何关于此的信息,至少没有明确禁止它。仅在调用已经要返回且相对睡眠不完整的情况下才写入非NULL // Just an example; you could use a different library or implement it yourself
import memoize from "memoize-one";
const combineStyles = memoize((shouldIncludeStyleTwo) => {
const styles = [styles.styleOne];
if (shouldIncludeStyleTwo) {
styles.push(styles.styleTwo);
}
return styles;
});
// ...
<StyledPureComponent style={combineStyles(this.props.something)} />
时间规范:不需要在此期间或之后再次读取请求时间规范。
该联机帮助页还会说出(剩余时间规格)
然后可以使用此值再次调用clock_nanosleep()并完成(相对)睡眠。
在这种情况下,remain
最好将其写回到相同的变量中。