Changeset 11516 for trunk/source/level-1/linux-files.lisp
- Timestamp:
- Dec 14, 2008, 7:48:45 AM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/level-1/linux-files.lisp
r11513 r11516 1155 1155 (loop 1156 1156 (when changed 1157 (setq pairs ( pairlis in-fds out-streams)1157 (setq pairs (delete nil pairs :key #'car) 1158 1158 changed nil)) 1159 1159 (when (and terminated (null pairs)) … … 1183 1183 (decf (car token)) 1184 1184 (fd-close in-fd) 1185 ;; Delete, watching out for the same out-stream being used 1186 ;; for different fds 1187 (loop for fds on in-fds as streams on out-streams 1188 do (when (eq (car fds) in-fd) 1189 (setf (car fds) :delete (car streams) :delete))) 1190 (setq in-fds (delete :delete in-fds) 1191 out-streams (delete :delete out-streams) 1192 changed t)) 1185 (setf (car p) nil changed t)) 1193 1186 (let* ((string (make-string 1024))) 1194 1187 (declare (dynamic-extent string)) … … 1741 1734 ;;; So, this tries to loop until the process handle is signaled and 1742 1735 ;;; all data has been read. 1743 1736 (defun monitor-external-process (p) 1744 1737 (let* ((in-fds (external-process-watched-fds p)) 1745 1738 (out-streams (external-process-watched-streams p)) … … 1751 1744 (loop 1752 1745 (when changed 1753 (setq pairs ( pairlis in-fds out-streams)1746 (setq pairs (delete nil pairs :key #'car) 1754 1747 changed nil)) 1755 1748 (when (and terminated (null pairs)) … … 1783 1776 (decf (car token)) 1784 1777 (fd-close in-fd) 1785 (setq in-fds (delete in-fd in-fds) 1786 out-streams (delete out-stream out-streams) 1787 changed t))) 1778 (setf (car p) nil changed t))) 1788 1779 1789 1780 (let* ((string (make-string 1024)))
Note: See TracChangeset
for help on using the changeset viewer.