summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/child_info.h
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2011-10-22 16:26:30 +0000
committerChristopher Faylor <me@cgf.cx>2011-10-22 16:26:30 +0000
commit6ae28c22639d43de76a9d45362df5055cd38a867 (patch)
tree1d68d36140425f822ed1ad4485051f25b9f71114 /winsup/cygwin/child_info.h
parentbdea9e5fe8cb19d89015d8a6543ecab4b9e76a01 (diff)
downloadcygnal-6ae28c22639d43de76a9d45362df5055cd38a867.tar.gz
cygnal-6ae28c22639d43de76a9d45362df5055cd38a867.tar.bz2
cygnal-6ae28c22639d43de76a9d45362df5055cd38a867.zip
* dtable.cc (dtable::delete_archetype): Improve debugging output.
(dtable::init_std_file_from_handle): Close console handle early, before initialization. Build up openflags for passing to open_setup, just to be safe. (last_tty_dev): New variable. (fh_last_tty_dev): New macro. (fh_alloc): Try again to keep track of previously opened tty, this time by just saving the device and using that to potentially open an archetype. Avoid setting the "/dev/tty" name if the creation of the fhandler failed. (build_fh_pc): Remove unused second argument. Reorganize how and where the name is set. Set last_tty_dev as appropriate. Avoid a NULL dereference in a debug printf. * dtable.h (build_fh_pc): Reflect removal of second parameter. * fhandler.cc (fhandler_base::reset): Use new '<<' operator to copy pc since it preserves any potentially previously set name. (fhandler_base::set_name): Ditto. * fhandler.h (fhandler_*::clone): Throughout use ccalloc to allocate new fhandler, primarily to make sure that pc field is properly zeroed. (fhandler_termios::last): Eliminate. (fhandler_termios): Remove setting of last. (fhandler_base::~fhandler_termios): Ditto. * fhandler_console.cc (fhandler_console::open): Don't make decisions about opening close-on-exec handles here since it makes no sense for archetypes. (fhandler_console::init): Assume that input handle has already been opened. * fhandler_termios.cc (fhandler_termios::last): Delete. * path.h (path_conv::eq_worker): New function. Move bulk of operator = here. (operator <<): New function. (operator =): Use eq_worker to perform old functionality.
Diffstat (limited to 'winsup/cygwin/child_info.h')
-rw-r--r--winsup/cygwin/child_info.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/winsup/cygwin/child_info.h b/winsup/cygwin/child_info.h
index 582d7e2c2..ef7166f2d 100644
--- a/winsup/cygwin/child_info.h
+++ b/winsup/cygwin/child_info.h
@@ -40,6 +40,8 @@ enum child_status
/* Change this value if you get a message indicating that it is out-of-sync. */
#define CURR_CHILD_INFO_MAGIC 0x29afd207U
+#define NPROCS 256
+
/* NOTE: Do not make gratuitous changes to the names or organization of the
below class. The layout is checksummed to determine compatibility between
different cygwin versions. */
@@ -54,6 +56,8 @@ public:
HANDLE subproc_ready; // used for synchronization with parent
HANDLE user_h;
HANDLE parent;
+ int nprocs;
+ pid_t children[NPROCS];
init_cygheap *cygheap;
void *cygheap_max;
DWORD cygheap_reserve_sz;