[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: MacTCP.lisp
- To: lynch@ils.nwu.edu, info-mcl@cambridge.apple.com
- Subject: Re: MacTCP.lisp
- From: e@flavors.com (Doug Currie, Flavors Technology, Inc.)
- Date: Mon, 7 Mar 1994 19:23:26 -0500
At 4:17 PM 94.03.07 -0600, lynch@ils.nwu.edu wrote:
>(defun %tcp-control (pb code &optional ignore-error-p)
> (setf (rref pb tcpioPB.csCode) code
> (rref pb tcpioPB.ioCompletion) (%null-ptr))
> (let* ((err nil))
> (progn
> (loop
> (when (eql (setq err (#_control :async pb)) 0)
> (let* ((*interrupt-level* 0))
> (while (> (setq err (rref pb tcpioPB.ioResult)) 0))))
> (unless (eql err -23016) (return)))
> (unless (or ignore-error-p (eql err 0))
> (%tcp-err-disp err))
> err)))
>
>Ok, I've tracked it down to the line:
>(while (> (setq err (rref pb tcpioPB.ioResult)) 0))
>
>This line never returns a negative number. When nothing is happening, it
>returns 0. When the string is sent, it returns 1.
>
>Any ideas?
Here's what's supposed to happen...
(#_control :async pb) starts the command, sets (rref pb tcpioPB.ioResult)
to commandInProgress, and returns. Note: commandInProgress > 0. When the
command completes, either timeout, error, or normal completion, (rref pb
tcpioPB.ioResult) will be noErr (0) or the error code (< 0). %tcp-control
waits for the #_control call to complete in LISP so LISP can process other
events, like abort, in the loop I guess.
Have you tried Network Software Installer v1.4.2 ? It is available from
ftp.apple.com and has new Ethernet drivers (and AppleTalk drivers) that
work a lot better. We needed to update ourselves to make MacTCP.Lisp work
with MacTCP 2.04 on M68040 based Macs with cache enabled.
e