main
test-branch
| Line | |
|---|
| 1 | #include <concurrency.cvh>
|
|---|
| 2 |
|
|---|
| 3 | $gbarrier gbarrier = $gbarrier_create($here, 2);
|
|---|
| 4 |
|
|---|
| 5 | typedef struct A {
|
|---|
| 6 | int x;
|
|---|
| 7 | } A;
|
|---|
| 8 |
|
|---|
| 9 | int main() {
|
|---|
| 10 | A a;
|
|---|
| 11 | void foo(int id) {
|
|---|
| 12 | $barrier b = $barrier_create($here, gbarrier, id);
|
|---|
| 13 |
|
|---|
| 14 | $barrier_call(b);
|
|---|
| 15 | a.x = id;
|
|---|
| 16 |
|
|---|
| 17 | $barrier_call(b);
|
|---|
| 18 | $assert(a.x == 1);
|
|---|
| 19 |
|
|---|
| 20 | $barrier_destroy(b);
|
|---|
| 21 | }
|
|---|
| 22 | $proc p0 = $spawn foo(0);
|
|---|
| 23 | $proc p1 = $spawn foo(1);
|
|---|
| 24 |
|
|---|
| 25 | $wait(p0);
|
|---|
| 26 | $wait(p1);
|
|---|
| 27 | $gbarrier_destroy(gbarrier);
|
|---|
| 28 | }
|
|---|
Note:
See
TracBrowser
for help on using the repository browser.