reformatting
svn: r8114
This commit is contained in:
parent
4923f00a0d
commit
9ba922ff1c
|
@ -33,15 +33,12 @@
|
||||||
;; single or multiple values
|
;; single or multiple values
|
||||||
(fprintf port
|
(fprintf port
|
||||||
(if write? "#<promise!~a~s" "#<promise!~a~a")
|
(if write? "#<promise!~a~s" "#<promise!~a~a")
|
||||||
(if (null? (cdr p))
|
(if (null? (cdr p)) "" "(values ")
|
||||||
""
|
|
||||||
"(values ")
|
|
||||||
(car p))
|
(car p))
|
||||||
(when (pair? (cdr p))
|
(when (pair? (cdr p))
|
||||||
(let ([fmt (if write? " ~s" " ~a")])
|
(let ([fmt (if write? " ~s" " ~a")])
|
||||||
(for-each (lambda (x) (fprintf port fmt x)) (cdr p))))
|
(for-each (lambda (x) (fprintf port fmt x)) (cdr p))))
|
||||||
(unless (null? (cdr p))
|
(unless (null? (cdr p)) (display ")" port))
|
||||||
(display ")" port))
|
|
||||||
(display ">" port)]
|
(display ">" port)]
|
||||||
[(promise? p) (loop (promise-val p))] ; hide sharing
|
[(promise? p) (loop (promise-val p))] ; hide sharing
|
||||||
[else (loop (list p))])))
|
[else (loop (list p))])))
|
||||||
|
@ -100,11 +97,10 @@
|
||||||
;; mark root for cycle detection:
|
;; mark root for cycle detection:
|
||||||
(set-promise-val! promise running)
|
(set-promise-val! promise running)
|
||||||
(with-handlers* ([void (lambda (e)
|
(with-handlers* ([void (lambda (e)
|
||||||
(set-promise-val! promise (lambda () (raise e)))
|
(set-promise-val! promise
|
||||||
|
(lambda () (raise e)))
|
||||||
(raise e))])
|
(raise e))])
|
||||||
(let-values ([(single? vals*)
|
(let-values ([(single? vals*) (call-with-values p handle-results)])
|
||||||
(call-with-values p
|
|
||||||
handle-results)])
|
|
||||||
(if single?
|
(if single?
|
||||||
(let loop1 ([val* vals*])
|
(let loop1 ([val* vals*])
|
||||||
(if (promise? val*)
|
(if (promise? val*)
|
||||||
|
@ -113,12 +109,11 @@
|
||||||
(set-promise-val! promise* promise) ; share with root
|
(set-promise-val! promise* promise) ; share with root
|
||||||
(cond [(procedure? p*)
|
(cond [(procedure? p*)
|
||||||
(let-values ([(single? vals)
|
(let-values ([(single? vals)
|
||||||
(call-with-values p*
|
(call-with-values
|
||||||
handle-results)])
|
p* handle-results)])
|
||||||
(if single?
|
(if single?
|
||||||
(loop1 vals)
|
(loop1 vals)
|
||||||
(begin
|
(begin (set-promise-val! promise vals)
|
||||||
(set-promise-val! promise vals)
|
|
||||||
(apply values vals))))]
|
(apply values vals))))]
|
||||||
[(or (pair? p*) (null? p*))
|
[(or (pair? p*) (null? p*))
|
||||||
(set-promise-val! promise p*)
|
(set-promise-val! promise p*)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user