source: CIVL/examples/languageFeatures/comm.cvl@ b50d2e7

1.23 2.0 main test-branch
Last change on this file since b50d2e7 was 36b5ada, checked in by Manchun Zheng <zmanchun@…>, 12 years ago

Cleaned up examples.

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@424 fb995dde-84ed-4084-dfe6-e5aef3e2452c

  • Property mode set to 100644
File size: 728 bytes
Line 
1/* Commandline execution:
2 * civl verify comm.cvl
3 * */
4#include <civlc.h>
5
6void worker(int value) {
7 for (int i = 0; i < value; i++) {
8 ; // Do work
9 }
10}
11
12void main() {
13 int nprocs = 3;
14 $proc procs[nprocs];
15 $comm comm;
16 $message message;
17 $message message2;
18 int comm_size;
19
20 procs[0] = $self;
21 procs[1] = $spawn worker(4);
22 procs[2] = $spawn worker(5);
23 comm = $comm_create(nprocs, procs);
24 message = $message_pack(0, 1, 0, &nprocs, sizeof(int));
25 $comm_enqueue(&comm, message);
26 $comm_enqueue(&comm, message);
27 $comm_enqueue(&comm, message);
28 comm_size = $comm_total_size(&comm);
29 $assert comm_size <= 3;
30 message2 = $comm_dequeue(&comm, 0, 1, 0);
31 $assert message.source == message2.source;
32
33}
Note: See TracBrowser for help on using the repository browser.