Close the qid and tqueue associated with a readahead thread when the
authorChris Hanson <org/chris-hanson/cph>
Sat, 22 Apr 1995 21:07:12 +0000 (21:07 +0000)
committerChris Hanson <org/chris-hanson/cph>
Sat, 22 Apr 1995 21:07:12 +0000 (21:07 +0000)
thread finishes.  This will fix the known bug of exhausting the set of
available qids, and it will also fix a previously unnoticed memory
leak.

v7/src/microcode/os2conio.c
v7/src/microcode/os2pipe.c

index 05875a9c68d4fd5f4a09c6cc87f87b4b32587ca5..1ca959dfda2659dbb590733816534e300c048658 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Id: os2conio.c,v 1.5 1995/01/05 23:39:57 cph Exp $
+$Id: os2conio.c,v 1.6 1995/04/22 21:06:57 cph Exp $
 
 Copyright (c) 1994-95 Massachusetts Institute of Technology
 
@@ -147,6 +147,11 @@ console_thread (void * arg)
          }
       }
     }
+  {
+    tqueue_t * tqueue = (OS2_qid_tqueue (console_writer_qid));
+    OS2_close_qid (console_writer_qid);
+    OS2_close_std_tqueue (tqueue);
+  }
   OS2_endthread ();
 }
 
index 88e7f8e897f98169f9c8b39e9b0e7decf82b2df2..c0053a0eb211af9134a2ff8d0b58e5c8269d3169 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Id: os2pipe.c,v 1.3 1995/01/05 23:43:32 cph Exp $
+$Id: os2pipe.c,v 1.4 1995/04/22 21:07:12 cph Exp $
 
 Copyright (c) 1994-95 Massachusetts Institute of Technology
 
@@ -131,5 +131,10 @@ input_pipe_thread (void * arg)
        break;
       OS2_wait_for_readahead_ack (qid);
     }
+  {
+    tqueue_t * tqueue = (OS2_qid_tqueue (qid));
+    OS2_close_qid (qid);
+    OS2_close_std_tqueue (tqueue);
+  }
   OS2_endthread ();
 }