view src/parallel_execution/examples/twice/createArray.cbc @ 580:39b5adbcd83f

fix twice example
author anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Wed, 27 Nov 2019 18:03:12 +0900
parents 4fdeb0afc187
children
line wrap: on
line source

#include <stdio.h>
#include "../../../context.h"
#interface "Timer.h"

extern int length;
extern int split;

__code createArray(__code next(struct Array* output, struct Timer* output1, ...), struct LoopCounter* loopCounter) {
    int i = loopCounter->i;
    if (i == 0){
        output->array = (Integer*)ALLOCATE_ARRAY(context, Integer, length);
        output->prefix = length/split;
    }
    if (i == GET_LEN(output->array)){
        printf("created Array\n");
        loopCounter->i = 0;
        goto output1->start(next(...));
    }
    output->array[i].value = i;
    loopCounter->i++;
    goto createArray();
}