Changeset 835
- Timestamp:
- Jun 23, 2004, 10:32:29 AM (20 years ago)
- File:
-
- 1 edited
-
trunk/ccl/level-1/linux-files.lisp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/level-1/linux-files.lisp
r829 r835 619 619 620 620 621 (defun watch-fd-output (in-fd out-stream token)622 (incf (car token))623 (let* ((handler ()))624 (setq handler625 #'(lambda ()626 (when (fd-input-available-p in-fd 0)627 (%stack-block ((buf 1024))628 (let* ((n (fd-read in-fd buf 1024)))629 (declare (fixnum n))630 (if (<= n 0)631 (progn632 (remove-watched-fd-handler handler)633 (without-interrupts634 (decf (car token))635 (fd-close in-fd)))636 (let* ((string (make-string 1024)))637 (declare (dynamic-extent string))638 (%copy-ptr-to-ivector buf 0 string 0 n)639 (write-sequence string out-stream :end n))))))))640 (add-watched-fd-handler handler))641 nil)642 643 621 (defun monitor-external-process (p) 644 622 (let* ((in-fd (external-process-watched-fd p)) … … 657 635 (let* ((n (fd-read in-fd buf 1024))) 658 636 (declare (fixnum n)) 659 (format t "~& n bytes available")660 637 (if (<= n 0) 661 638 (progn
Note:
See TracChangeset
for help on using the changeset viewer.
