diff options
author | Takashi Yano <takashi.yano@nifty.ne.jp> | 2019-08-12 22:46:23 +0900 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2019-08-12 17:08:48 +0200 |
commit | 92e2c1ad9de2d140374bf789b2eb6142b3297120 (patch) | |
tree | c1607e835fde6ba0ded5d2277fdbba26305d2784 | |
parent | 744b90c9963cac8dbe62d8970f145e53b927d4e6 (diff) | |
download | cygnal-92e2c1ad9de2d140374bf789b2eb6142b3297120.tar.gz cygnal-92e2c1ad9de2d140374bf789b2eb6142b3297120.tar.bz2 cygnal-92e2c1ad9de2d140374bf789b2eb6142b3297120.zip |
Cygwin: console: Fix deadlock at calling fork().
- Calling fork() on console occasionally falls into deadlock. The reason
is not clear, however, this patch fixes this problem anyway.
-rw-r--r-- | winsup/cygwin/fhandler_console.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/winsup/cygwin/fhandler_console.cc b/winsup/cygwin/fhandler_console.cc index e3656a33a..df28c7f93 100644 --- a/winsup/cygwin/fhandler_console.cc +++ b/winsup/cygwin/fhandler_console.cc @@ -168,8 +168,12 @@ fhandler_console::set_unit () if (created) con.owner = getpid (); } - if (!created && shared_console_info && kill (con.owner, 0) == -1) - con.owner = getpid (); + if (!created && shared_console_info) + { + pinfo p (con.owner); + if (!p) + con.owner = getpid (); + } dev ().parse (devset); if (devset != FH_ERROR) |