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