single consumer - single producer exchanging different size of data over a channel.
single consumer - multiple producers exchangind different size of data over a channel.
I've tried the single consumer single producer scenario and measured it by toggling an IO pin plugged to an oscilloscope however i expect that to be an awful method for the second scenario since it cannot capture the small timing differences between let's say 4 and 5 producers.
I decided to work with the Time Analyser but with not much luck.
After adding the -fno-xta-info flag, I saw that even refactoring simple code had an effect on the available endpoints and I do not understand why. For example, when I tried to exchange a struct of one char between two threads I got some nice endpoint. When this char was changed to an array of cars the endpoints where gone.
Now I am trying the following extremely simple code with no luck since no endpoints are available on the Analyser perspective nor listed on its command line
Code: Select all
void consumer_0(chanend c_data_0){
char data;
while(1){
c_data_0 :> data;
}
}
void producer_0(chanend c_data_0){
char data;
while(1){
c_data_0 <: data;
}
}
void main(){
chand c_data_0;
par{
on tile[0]: consumer_0(c_data_0);
on tile[1]: consumer_0(c_data_0);
}
}
Greetings