From 488ddaced31b6e5c022732588375ddf6281b1c1a Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Sun, 24 Oct 2010 15:26:05 +0000 Subject: [PATCH] * exceptions.cc (try_to_debug): Improve comment. * fhandler_tty.cc (fhandler_pty_master::fhandler_pty_master): Add a comment. --- winsup/cygwin/ChangeLog | 6 ++++++ winsup/cygwin/exceptions.cc | 5 +++-- winsup/cygwin/fhandler_tty.cc | 8 ++++---- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 76b2d428c..554d14fd6 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,9 @@ +2010-10-24 Christopher Faylor + + * exceptions.cc (try_to_debug): Improve comment. + * fhandler_tty.cc (fhandler_pty_master::fhandler_pty_master): Add a + comment. + 2010-10-23 Christopher Faylor * pinfo.cc (pinfo::exit): Grab a tty lock before setting pgid. diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index db18f7ae4..71766575b 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -390,8 +390,9 @@ try_to_debug (bool waitloop) suspend_all_threads_except (current_thread_id); */ - /* if any of these mutexes is owned, we will fail to start any cygwin app - until trapped app exits */ + /* If the tty mutex is owned, we will fail to start any cygwin app + until the trapped app exits. However, this will only release any + the mutex if it is owned by this thread so that may be problematic. */ lock_ttys::release (); diff --git a/winsup/cygwin/fhandler_tty.cc b/winsup/cygwin/fhandler_tty.cc index f2616e7e2..56ef28020 100644 --- a/winsup/cygwin/fhandler_tty.cc +++ b/winsup/cygwin/fhandler_tty.cc @@ -1347,8 +1347,8 @@ fhandler_pty_master::fhandler_pty_master () int fhandler_pty_master::open (int flags, mode_t) { - int ntty; - ntty = cygwin_shared->tty.allocate (false); + /* Note that allocate returns with the tty lock set if it was successful. */ + int ntty = cygwin_shared->tty.allocate (false); if (ntty < 0) return 0; @@ -1361,8 +1361,8 @@ fhandler_pty_master::open (int flags, mode_t) lock_ttys::release (); set_flags ((flags & ~O_TEXT) | O_BINARY); set_open_status (); - // - // FIXME: Do this better someday + + /* FIXME: Do this better someday */ fhandler_pty_master *arch = (fhandler_tty_master *) cmalloc_abort (HEAP_ARCHETYPES, sizeof (*this)); *((fhandler_pty_master **) cygheap->fdtab.add_archetype ()) = arch; archetype = arch;