;;; -*- Mode:Lisp; Readtable:CL; Package:USER; Base:10; Patch-File:T -*-
;;; Patch file for System version 124.11
;;; Reason:
;;;  Create variables tcp:*tcp-stream-whostate* and udp:*udp-stream-whostate*
;;;  that you can bind to something more meaningful than "TCP socket I/O" or
;;;  "UDP socket I/O"
;;; Written 27-May-88 18:07:52 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.NETWORK.IP-TCP.KERNEL; TCP-STREAM.LISP#54 at 27-May-88 18:08:52
#10R TCP#: 
(COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "TCP")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; KERNEL; TCP-STREAM  "

(export '(*tcp-stream-whostate*))

))

; From modified file DJ: L.NETWORK.IP-TCP.KERNEL; TCP-STREAM.LISP#54 at 27-May-88 18:08:34
#10R TCP#: 
(COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "TCP")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; KERNEL; TCP-STREAM  "

(defvar *tcp-stream-whostate* "TCP socket I/O" "The wait state for the wholine")

))

; From modified file DJ: L.NETWORK.IP-TCP.KERNEL; TCP-STREAM.LISP#54 at 27-May-88 18:08:39
#10R TCP#: 
(COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "TCP")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; KERNEL; TCP-STREAM  "

(defmethod (tcp-stream-mixin :wait-for-reply) (&optional function &rest args)
  (process-wait *tcp-stream-whostate*
		#'(lambda (tcp-socket func arg-list)
		    (or (send tcp-socket :listen)
			(and func (apply func arg-list))))
		socket function args))

))

; From modified file DJ: L.NETWORK.IP-TCP.KERNEL; UDP-STREAM.LISP#19 at 27-May-88 18:09:03
#10R UDP#: 
(COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "UDP")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; KERNEL; UDP-STREAM  "

(export '(*udp-stream-whostate*))

))

; From modified file DJ: L.NETWORK.IP-TCP.KERNEL; UDP-STREAM.LISP#19 at 27-May-88 18:09:09
#10R UDP#: 
(COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "UDP")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; KERNEL; UDP-STREAM  "

(defvar *udp-stream-whostate* "UDP socket I/O" "The wait state for the wholine")

))

; From modified file DJ: L.NETWORK.IP-TCP.KERNEL; UDP-STREAM.LISP#19 at 27-May-88 18:09:15
#10R UDP#: 
(COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "UDP")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; KERNEL; UDP-STREAM  "

(defun wait-for-reply (socket)
  (process-wait *udp-stream-whostate*
		#'(lambda (udp-socket)
		    (send udp-socket :listen))
		socket))

))
