Changeset 7330 for trunk/ccl/level-1/l1-processes.lisp
- Timestamp:
- Oct 1, 2007, 6:13:02 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/level-1/l1-processes.lisp
r6942 r7330 137 137 :type (satisfies valid-allocation-quantum-p)) 138 138 (dribble-stream :initform nil) 139 (dribble-saved-terminal-io :initform nil)) 139 (dribble-saved-terminal-io :initform nil) 140 (result :initform (cons nil nil) 141 :reader process-result)) 140 142 (:primary-p t)) 141 143 … … 333 335 (kill (handler-case 334 336 (restart-case 335 (progn 336 (apply (car initial-form) (cdr (the list initial-form))) 337 (let ((values 338 (multiple-value-list 339 (apply (car initial-form) 340 (cdr (the list initial-form))))) 341 (result (process-result process))) 342 (setf (cdr result) values 343 (car result) t) 337 344 (setq exited t) 338 345 nil) … … 662 669 (make-broadcast-stream out f))))) 663 670 path))) 671 672 (defmethod join-process ((p process) &key (default nil defaultp)) 673 (wait-on-semaphore (process-termination-semaphore p) nil "join-process") 674 (let ((result (process-result p))) 675 (cond ((car result) (values-list (cdr result))) 676 (defaultp default) 677 (t (error "Failed to join ~s" p)))))
Note: See TracChangeset
for help on using the changeset viewer.