;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:8; Patch-File:T -*-
;;; Patch file for System version 124.15
;;; Reason:
;;;  If you abort while closing a file, it may be really closed but
;;;  remain on the who line.
;;; Written 1-Jun-88 13:47:07 by pld (Peter L. DeWolf) at site Gigamos Cambridge
;;; while running on Cthulhu from band 2
;;; with Experimental System 124.10, Experimental Local-File 74.0, Experimental File-Server 23.0, Experimental Unix-Interface 12.0, Experimental ZMail 72.0, Experimental Tape 23.0, Experimental Lambda-Diag 16.0, microcode 1756, SDU Boot Tape 3.14, SDU ROM 8.



; From modified file DJ: L.IO; STREAM.LISP#116 at 1-Jun-88 13:47:40
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: IO; STREAM  "

(UNDEFMETHOD (FILE-DATA-STREAM-MIXIN :AFTER :CLOSE))

))

; From modified file DJ: L.IO; STREAM.LISP#116 at 1-Jun-88 13:47:51
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: IO; STREAM  "

(defwrapper (file-data-stream-mixin :close) (ignore . body)
  `(unwind-protect
       (progn ,@body)
     (funcall tv:who-line-file-state-sheet :delete-stream self)))

))

; From modified file DJ: L.NETWORK.IP-TCP.USER; FTP-ACCESS.LISP#48 at 1-Jun-88 13:49:27
#10R FILE-SYSTEM#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "FILE-SYSTEM")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; USER; FTP-ACCESS  "

(defmethod (ftp-host-unit :remove-file-stream) (the-file-stream)
  (lock-host-unit (self)
    (when file-stream				;Don't bother if already gone
      (when (not (eq file-stream the-file-stream))
	(cerror "remove anyway" "removing ~S but current stream is ~S"
		the-file-stream file-stream))
      (setq file-stream nil))))

))
