select EINTR

实验环境:ubuntuKylin 13.10

在程序里同时有select和定时器,

select 会被定时器产生的EINTR中断

在定时器的设置中增加了SA_RESTART和sigprocmask,发现都不管用

只能自己判断EINTR来重启select了。


在select被EINTR中断时,我输出一条打印信息然后重启select

发现一个现象,当定时器的时间设置为300ms,发现这是一个极限值,如果小于等于这个值,

发现系统响应缓慢,对select监听的描述符的响应也十分缓慢。

分析应该是select来不及复位造成的。

如果大于300ms,select会在300ms重启一次,并打印重启信息,说明在大于300ms的定时器中断,系统是来得及

重启select的。


下一步在am3352上再测试。

创作挑战赛新人创作奖励来咯,坚持创作打卡瓜分现金大奖

Published by

风君子

独自遨游何稽首 揭天掀地慰生平