Merge commit 'doublec/master'
commit
f7d8e204e7
|
@ -286,13 +286,15 @@ TUPLE: promise fulfilled? value processes ;
|
||||||
: fulfill ( value promise -- )
|
: fulfill ( value promise -- )
|
||||||
#! Set the future of the promise to the given value. Threads
|
#! Set the future of the promise to the given value. Threads
|
||||||
#! blocking on the promise will then be released.
|
#! blocking on the promise will then be released.
|
||||||
dup promise-fulfilled? [
|
dup promise-fulfilled? [
|
||||||
|
2drop
|
||||||
|
] [
|
||||||
[ set-promise-value ] keep
|
[ set-promise-value ] keep
|
||||||
[ t swap set-promise-fulfilled? ] keep
|
[ t swap set-promise-fulfilled? ] keep
|
||||||
[ promise-processes ] keep
|
[ promise-processes ] keep
|
||||||
0 <vector> swap set-promise-processes
|
0 <vector> swap set-promise-processes
|
||||||
[ schedule-thread ] each yield
|
[ schedule-thread ] each yield
|
||||||
] unless ;
|
] if ;
|
||||||
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
: (maybe-block-promise) ( promise -- promise )
|
: (maybe-block-promise) ( promise -- promise )
|
||||||
|
|
Loading…
Reference in New Issue