]> gitweb.factorcode.org Git - factor.git/blob - basis/concurrency/flags/flags-tests.factor
factor: trim using lists
[factor.git] / basis / concurrency / flags / flags-tests.factor
1 USING: tools.test concurrency.flags concurrency.combinators
2 kernel threads accessors calendar ;
3 IN: concurrency.flags.tests
4
5 :: flag-test-1 ( -- val )
6     <flag> :> f
7     [ f raise-flag ] "Flag test" spawn drop
8     f lower-flag
9     f value>> ;
10
11 { f } [ flag-test-1 ] unit-test
12
13 :: flag-test-2 ( -- ? )
14     <flag> :> f
15     [ 1 seconds sleep f raise-flag ] "Flag test" spawn drop
16     f lower-flag
17     f value>> ;
18
19 { f } [ flag-test-2 ] unit-test
20
21 :: flag-test-3 ( -- val )
22     <flag> :> f
23     f raise-flag
24     f value>> ;
25
26 { t } [ flag-test-3 ] unit-test
27
28 :: flag-test-4 ( -- val )
29     <flag> :> f
30     [ f raise-flag ] "Flag test" spawn drop
31     f wait-for-flag
32     f value>> ;
33
34 { t } [ flag-test-4 ] unit-test
35
36 :: flag-test-5 ( -- val )
37     <flag> :> f
38     [ 1 seconds sleep f raise-flag ] "Flag test" spawn drop
39     f wait-for-flag
40     f value>> ;
41
42 { t } [ flag-test-5 ] unit-test
43
44 { } [
45     { 1 2 } <flag>
46     [ [ 1 seconds sleep raise-flag ] curry "Flag test" spawn drop ]
47     [ [ wait-for-flag drop ] curry parallel-each ] bi
48 ] unit-test