1 USING: tools.test concurrency.flags concurrency.combinators
\r
2 kernel threads locals accessors calendar ;
\r
3 IN: concurrency.flags.tests
\r
5 :: flag-test-1 ( -- val )
\r
7 [ f raise-flag ] "Flag test" spawn drop
\r
11 [ f ] [ flag-test-1 ] unit-test
\r
13 :: flag-test-2 ( -- ? )
\r
15 [ 1 seconds sleep f raise-flag ] "Flag test" spawn drop
\r
19 [ f ] [ flag-test-2 ] unit-test
\r
21 :: flag-test-3 ( -- val )
\r
26 [ t ] [ flag-test-3 ] unit-test
\r
28 :: flag-test-4 ( -- val )
\r
30 [ f raise-flag ] "Flag test" spawn drop
\r
34 [ t ] [ flag-test-4 ] unit-test
\r
36 :: flag-test-5 ( -- val )
\r
38 [ 1 seconds sleep f raise-flag ] "Flag test" spawn drop
\r
42 [ t ] [ flag-test-5 ] unit-test
\r
46 [ [ 1 seconds sleep raise-flag ] curry "Flag test" spawn drop ]
\r
47 [ [ wait-for-flag drop ] curry parallel-each ] bi
\r