On Sun, 13 Jul 2008, Andi Kleen wrote:I didn't take a look at the source, but I literally think that the 'ls' SIGINT handler is something like static void sigint(int signr) { exit_with_sigint = 1; } and then in the output routine it does a if (exit_with_sigint) { signal(SIGINT, SIG_DFL); kill(-1, SIGINT); } at the end because that's the only thing that explains that it always exits after printing the _first_ line of output (ignoring the header - it obviously doesn't have that "if (exit_with_sigint)" test in that code-path). Sad. Horrible crap. It means that it totally disables the kernels ability to make fatal signals break out of disk wait etc. It's also totally _unnecessary_, because 'ls' shouldn't even bother to block signals until just before it starts doing the printout. Oh well. You can't expect too much of user level programmers. Linus --
| Davide Libenzi | [patch 7/8] fdmap v2 - implement sys_socket2 |
| Greg Kroah-Hartman | [PATCH 018/196] coda: convert struct class_device to struct device |
| Bart Van Assche | Integration of SCST in the mainstream Linux kernel |
| David Newall | Re: Slow DOWN, please!!! |
git: | |
| Christoph Lameter | Network latency regressions from 2.6.22 to 2.6.29 |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Arjan van de Ven | Re: [GIT]: Networking |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
