After fork()ing we need to close the PTY master FD in the child. Otherwise

closing/killing the Terminal will not automatically wake up children
reading/writing the slave end. Fixes #3340 and probably #5395.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35584 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2010-02-23 13:49:30 +00:00
parent 035edd562b
commit 1e3815ba3b
+5 -1
View File
@@ -1,5 +1,5 @@
/*
* Copyright 2007-2009, Haiku, Inc. All rights reserved.
* Copyright 2007-2010, Haiku, Inc. All rights reserved.
* Copyright (c) 2003-4 Kian Duffy <[email protected]>
* Copyright (c) 2004 Daniel Furrer <[email protected]>
* Parts Copyright (C) 1998,99 Kazuho Okui and Takashi Murai.
@@ -8,6 +8,7 @@
*
*/
#include "Shell.h"
#include <dirent.h>
@@ -398,6 +399,9 @@ Shell::_Spawn(int row, int col, const char *encoding, int argc, const char **arg
if (fProcessID == 0) {
// Now in child process.
// close the PTY master side
close(master);
/*
* Make our controlling tty the pseudo tty. This hapens because
* we cleared our original controlling terminal above.