diff options
Diffstat (limited to 'cpp/042new')
-rw-r--r-- | cpp/042new | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/cpp/042new b/cpp/042new index f032f90a..a980d8cb 100644 --- a/cpp/042new +++ b/cpp/042new @@ -11,11 +11,13 @@ recipe main [ +mem: storing 0 in location 3 :(before "End Globals") -const size_t Alloc_init = 1000; +size_t Memory_allocated_until = 1000; +:(before "End Setup") +Memory_allocated_until = 1000; :(before "End routine Fields") size_t alloc; :(replace{} "routine::routine(recipe_number r)") - routine::routine(recipe_number r) :alloc(Alloc_init) { + routine::routine(recipe_number r) :alloc(Memory_allocated_until) { calls.push(call(r)); } @@ -101,3 +103,24 @@ if (current_instruction().ingredients[0].properties[0].second[0] == "literal-str // mu strings are not null-terminated in memory break; } + +//:: Make sure that each routine gets a different alloc to start. + +:(scenario new_concurrent) +recipe f1 [ + run f2:recipe + 1:address:integer <- new integer:type +] +recipe f2 [ + 2:address:integer <- new integer:type + # hack: assumes scheduler implementation + 3:boolean <- equal 1:address:integer, 2:address:integer +] ++mem: storing 0 in location 3 + +:(before "End Globals") +size_t Initial_memory_per_routine = 100000; +:(before "End Setup") +Initial_memory_per_routine = 100000; +:(after "routine::routine(recipe_number r)") + Memory_allocated_until += Initial_memory_per_routine; |