Messages in this thread | | | From | Denis Vlasenko <> | Subject | O_NONBLOCK setting "leak" outside of a process?? | Date | Sat, 27 Jan 2007 21:52:11 +0100 |
| |
Hi,
I am currently on Linux 2.6.18, x86_64. I came across strange behavior while working on one of busybox applets. I narrowed it down to these two trivial testcases:
#include <unistd.h> #include <fcntl.h> int main() { fcntl(0, F_SETFL, fcntl(0, F_GETFL, 0) | O_NONBLOCK); return 0; }
#include <unistd.h> #include <fcntl.h> int main() { fcntl(0, F_SETFL, fcntl(0, F_GETFL, 0) & ~O_NONBLOCK); return 0; }
If I run "nonblock" in Midnight Commander in KDE's Konsole, screen redraw starts to work ~5 times slower. For example, Ctrl-O ("show/hide panels" in MC) takes ~0.5 sec to redraw. This persists after the program exist (which it does immediately as you see). Running "block" reverts things to normal.
I mean: how can O_NONBLOCK _issued in a process which already exited_ have any effect whatsoever on MC or Konsole? They can't even know that it did it, right?
Either I do not know something subtle about Unix or some sort of bug is at work.
Any advice? -- vda - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |