Tencent / phxpaxos

The Paxos library implemented in C++ that has been used in the WeChat production environment.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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自身会创建子进程吗

不会创建线程,应该是调试时用的。
@niukuo signal对你的应用有影响吗?

程序使用popen等方式调用外部命令时无法得知子进程已经结束

commented

SIGPIPE如果不处理的话,在出现一些网络错误的时候,会导致进程被杀。
具体可以看一下SIGPIPE的触发机制。