Code: Select all
#define DELAY 50000000;
[[combinable]]
void com() {
timer t;
unsigned time;
t :> time;
printf("hi\n");
while(1) {
select {
case t when timerafter(time) :> void :
printf("com tick \n");
t :> time;
time += DELAY;
break;
}
}
}
[[combinable]]
void task(int n) {
timer t;
unsigned time;
t :> time;
printf("hello from %d\n",n);
while(1) {
select {
case t when timerafter(time) :> void :
printf("task %d tick\n",n);
t :> time;
time += DELAY;
break;
}
}
}
int main (void) {
[[combine]]
par {
com();
[[combine]]
par (unsigned i = 0; i < 4; i++)
task(i);
}
return 0;
}
However this does compile;error: statement in combinable par must be a call to a com
binable function
par (unsigned i = 0; i < 4; i++) {
Code: Select all
#define DELAY 50000000;
[[combinable]]
void com() {
timer t;
unsigned time;
t :> time;
printf("hi\n");
while(1) {
select {
case t when timerafter(time) :> void :
printf("com tick \n");
t :> time;
time += DELAY;
break;
}
}
}
[[combinable]]
void task(int n) {
timer t;
unsigned time;
t :> time;
printf("hello from %d\n",n);
while(1) {
select {
case t when timerafter(time) :> void :
printf("task %d tick\n",n);
t :> time;
time += DELAY;
break;
}
}
}
[[combinable]]
void tasks() {
[[combine]]
par (unsigned i = 0; i < 4; i++)
task(i);
}
int main (void) {
[[combine]]
par {
com();
tasks();
}
return 0;
}
regards>xcc --version
Community_14.0.1 (build 16721, Mar-31-2015)
Compiler version: 14.0.1
Copyright (C) XMOS Limited 2008-2015. All Rights Reserved.
Al