clock_nanosleep-请求和保持相同的指针?

时间:2019-01-14 16:41:39

标签: c++ linux

在请求中将相同的对象提交给clock_nanosleep并保留参数是否安全?

do {
   ret = clock_nanosleep(CLOCK_MONOTONIC, 0,  &t, &t);
} while (ret == EINTR);

我目前正在研究一种现象,该现象有时使系统永远不会离开该循环(尽管通常如此)。

致谢

1 个答案:

答案 0 :(得分:1)

  

在请求中将相同的对象提交给clock_nanosleep并保留参数是否安全?

至少在符合POSIX的环境中,这很好。

POSIX clock_nanosleep doc

  

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最好将其写回到相同的变量中。