|
From: | Felix Winkelmann |
Subject: | Re: [Chicken-users] questionable http-server behaviour under heavyload: broken pipe |
Date: | Thu, 26 Aug 2004 07:04:37 +0200 |
User-agent: | Mozilla Thunderbird 0.5 (X11/20040208) |
Chris Double wrote:
'Broken Pipe' is usually caused by writing to a socket that has closed. When this happens a SIGPIPE signal is raised. You can either catch this signal and ignore it (or handle it in some other manner), or pass MSG_NOSIGNAL to the 'send' call. Unfortunately MSG_NOSIGNAL is not in FreeBSD, in that case you can use the socket option SO_NOSIGPIPE. This should probably be done in the Chicken library somewhere I guess.
Thanks for the tip, Chris. I will make the appropriate fixes in the tcp.scm code. On the other hand, spiffy-main.scm does perform an explicit (set-signal-handler! signal/pipe #f) which internally does a signal(SIGPIPE, SIG_IGN). So I assumed the signal will be disabled. Apparently I was wrong. Or not? (Sorry, my UNIX hacking skills are rather limited, if someone can explain this?) cheers, felix
[Prev in Thread] | Current Thread | [Next in Thread] |