close.c (f_exit): Reset f__init so that f_clos does not (incorrectly) think there...
authorMumit Khan <kahn@xraylity.wisc.edu>
Tue, 18 Nov 1997 16:48:12 +0000 (16:48 +0000)
committerJeff Law <law@gcc.gnu.org>
Tue, 18 Nov 1997 16:48:12 +0000 (09:48 -0700)
        * libI77/close.c (f_exit): Reset f__init so that f_clos does not
        (incorrectly) think there is an I/O recursion when program is
        interrupted.

From-SVN: r16565

gcc/f/runtime/ChangeLog.egcs
gcc/f/runtime/libI77/close.c

index 8c88104..c138a11 100644 (file)
@@ -1,3 +1,9 @@
+Tue Nov 18 09:49:04 1997  Mumit Khan   (kahn@xraylity.wisc.edu)
+
+       * libI77/close.c (f_exit): Reset f__init so that f_clos does not
+       (incorrectly) think there is an I/O recursion when program is
+       interrupted.
+
 Sat Nov  1 18:03:42 1997  Jeffrey A Law  (law@cygnus.com)
 
        * libF77/signal_.c: Undo last change until we can fix it right.
index 691f931..93e9198 100644 (file)
@@ -75,6 +75,10 @@ f_exit(void)
        static cllist xx;
        if (! (f__init & 1))
                return;         /* Not initialized, so no open units. */
+       /* no more I/O to be done. If this is not done, then if the
+          program is interrupted during I/O, f_clos thinks, incorrectly,
+          that there is an I/O recursion. */
+       f__init &= ~2;
        if (!xx.cerr) {
                xx.cerr=1;
                xx.csta=NULL;