[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-devel:11513] Re: jfbterm



  吉山@品川です。

From: Taketoshi Sano <kgh12351@xxxxxxxxxxx>
Subject: [debian-devel:11512] Re: jfbterm
Date: Mon, 31 Jan 2000 21:06:04 +0900
Message-ID: <20000131145556I.xlj06203@xxxxxxxxxxxxxxxxxxxx>

kgh12351> 佐野@浜松です。
kgh12351> 
kgh12351> 「終了時に凍る」問題と直接には関係無いみたいですが (一応やってみた)
kgh12351>  jfbterm の term.c にある
kgh12351> 
kgh12351> void sigchld(sig) int sig; {
kgh12351>         int st;
kgh12351>         int ret;
kgh12351>         ret = wait(&st);
kgh12351>         if (ret == gChildProcessId || ret == ECHILD) {
kgh12351>                 tvterm_unregister_signal();
kgh12351>                 tterm_final(&gTerm);
kgh12351>                 exit(EXIT_SUCCESS);
kgh12351>         }
kgh12351>         signal(SIGCHLD, sigchld);
kgh12351> }
kgh12351> 
kgh12351> って正しいですか ?

  間違っていますね。

kgh12351> となっているので、
kgh12351>         if (ret == gChildProcessId || ret == ECHILD) {
kgh12351> この行は
kgh12351>         if (ret == gChildProcessId || (ret == -1 && errno == ECHILD)) {
kgh12351> が正しいのかな、という気がするのですが。

  プログラマが期待したのは↑でしょう。

kgh12351>         if (ret == gChildProcessId || ret == -1) {
kgh12351> のほうがもっといいかも。

  結果に大差はありません。

---
吉山あきら (yosshy@debian.or.jp)