【发布时间】:2011-07-28 08:04:38
【问题描述】:
有很多文件说“你应该避免使用带警报的睡眠,因为许多系统使用警报来实现睡眠”。实际上,我正在为这个问题而苦恼。 那么,当 sleep() 不能很好地处理警报时,有没有人可以帮助我“睡觉”?我已经尝试过 Time::HiRes 模块的 'usleep' 和 select() 函数。但它们也不起作用。
【问题讨论】:
-
出于好奇,您在哪个系统上发现
sleep和alarm不兼容? -
@mob,来自
man alarm在我登录的 Linux 机器上:“sleep() 可以使用 SIGALRM 实现;混合调用 alarm() 和 sleep() 是个坏主意。”这适用于 C 库调用,但我相信 Perl 只是为alarm()和sleep()包装 C 函数。 -
您的问题没有描述您的症状。大多数回答者都推测您遇到问题是因为睡眠被警报打断了。但是,您的问题并没有这么说。
-
我也想知道你在哪个系统上不兼容。 @Ven'Tatsu,您引用的文档是样板文件,不一定适用于您所在的系统。我的系统有相同的文档,但睡眠没有使用警报实现。