0
所中断
我有以下代码段:蟒选择不是由SIGCHLD
try:
r_l, w_l, e_l = select.select([connection_fd], [], [], timeout_secs)
except select.error as (err_no, msg):
# get interrupted on select
虽然我的程序等待在此,如果有一个信号(如SIGCHLD),选择与中断select.error 。 但是,即使我在输入select之前有未决信号,我也不确定这是否正常工作? (connection_fd套接字设置为阻塞)。
是否存在未决信号的可能性,但选择仍然不会中断?
什么叫“挂起信号输入选择之前”的意思是OS信号为低电平时,他们?只是在到达时被传递到应用程序,没有队列,没有挂起的(据我所知,纠正我,如果我错了) - 这样你或者收到SIGCHLD _before_选择并处理它(通过你自己或可能默认的信号处理程序)或在输入select后接收它,无论如何没有这样的挂起信号...... –
本周早些时候我遇到了这个问题如果你明确地为SIGCHLD设置了一个信号处理程序,select.select调用将会中断,所以我添加了一个条件它会检查是否定义了SIGCHLD处理程序,并在需要时设置无操作假处理程序。 –