* fhandler_tty.cc (fhandler_pty_master::fhandler_pty_master): Add a comment.
+2010-10-24 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * exceptions.cc (try_to_debug): Improve comment.
+ * fhandler_tty.cc (fhandler_pty_master::fhandler_pty_master): Add a
+ comment.
+
2010-10-23 Christopher Faylor <me+cygwin@cgf.cx>
* pinfo.cc (pinfo::exit): Grab a tty lock before setting pgid.
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 ();
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;
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;