31 lines
739 B
Factor
31 lines
739 B
Factor
IN: concurrency.exchangers.tests
|
|
USING: sequences tools.test concurrency.exchangers
|
|
concurrency.count-downs concurrency.promises locals kernel
|
|
threads ;
|
|
|
|
:: exchanger-test ( -- )
|
|
[let |
|
|
ex [ <exchanger> ]
|
|
c [ 2 <count-down> ]
|
|
v1! [ f ]
|
|
v2! [ f ]
|
|
pr [ <promise> ] |
|
|
|
|
[
|
|
c await
|
|
v1 ", " v2 3append pr fulfill
|
|
] "Awaiter" spawn drop
|
|
|
|
[
|
|
"Goodbye world" ex exchange v1! c count-down
|
|
] "Exchanger 1" spawn drop
|
|
|
|
[
|
|
"Hello world" ex exchange v2! c count-down
|
|
] "Exchanger 2" spawn drop
|
|
|
|
pr ?promise
|
|
] ;
|
|
|
|
[ "Hello world, Goodbye world" ] [ exchanger-test ] unit-test
|