@@ -9,7 +9,9 @@
99#include "idris_rts.h"
1010#include "idris_gc.h"
1111
12−VM* init_vm(int stack_size, size_t heap_size, int argc, char* argv[]) {
12+VM* init_vm(int stack_size, size_t heap_size,
13+ int max_threads, // not implemented yet
14+ int argc, char* argv[]) {
1315 VAL* valstack = malloc(stack_size*sizeof(VAL));
1416 int* intstack = malloc(stack_size*sizeof(int));
1517 double* floatstack = malloc(stack_size*sizeof(double));
@@ -43,8 +45,9 @@ VM* init_vm(int stack_size, size_t heap_size, int argc, char* argv[]) {
4345 pthread_mutex_init(&(vm->inbox_block), NULL);
4446 pthread_cond_init(&(vm->inbox_waiting), NULL);
4547
48+ vm->max_threads = max_threads;
49+
4650 int i;
47−
4851 // Assumption: there's enough space for this in the initial heap.
4952 vm->argv = malloc(argc*sizeof(VAL));
5053 vm->argc = argc;
@@ -364,7 +367,9 @@ void* runThread(void* arg) {
364367}
365368
366369void* vmThread(VM* callvm, func f, VAL arg) {
367− VM* vm = init_vm(callvm->stack_max - callvm->valstack, callvm->heap_size, 0, NULL);
370+ VM* vm = init_vm(callvm->stack_max - callvm->valstack, callvm->heap_size,
371+ callvm->max_threads,
372+ 0, NULL);
368373 pthread_t t;
369374 pthread_attr_t attr;
370375// size_t stacksize;