tcp.cpp中为何要设置signal?
niukuo opened this issue · comments
看起来是调试用到的?但是在编译时没办法通过设置环境变量CFLAGS=-DNDEBUG屏蔽掉,设置这几个signal有什么用意吗?
https://github.com/Tencent/phxpaxos/blob/master/src/communicate/tcp/tcp.cpp#L101
SIGPIPE和SIGALRM默认会abort http://man7.org/linux/man-pages/man7/signal.7.html, SIGCHLD防止僵尸进程,无需处理退出的子进程
SIGPIPE和SIGALRM默认会abort http://man7.org/linux/man-pages/man7/signal.7.html, SIGCHLD防止僵尸进程,无需处理退出的子进程
phxpaxos自身会创建子进程吗
程序使用popen等方式调用外部命令时无法得知子进程已经结束
SIGPIPE如果不处理的话,在出现一些网络错误的时候,会导致进程被杀。
具体可以看一下SIGPIPE的触发机制。