void __cilkrts_frame_malloc_global_init(global_state_t *g) { int i; __cilkrts_mutex_init(&g->frame_malloc.lock); g->frame_malloc.check_for_leaks = 1; g->frame_malloc.pool_list = 0; g->frame_malloc.pool_begin = 0; g->frame_malloc.pool_end = 0; g->frame_malloc.batch_size = 8000; g->frame_malloc.potential_limit = 4 * g->frame_malloc.batch_size; g->frame_malloc.allocated_from_os = 0; g->frame_malloc.allocated_from_global_pool = 0; g->frame_malloc.wasted = 0; for (i = 0; i < FRAME_MALLOC_NBUCKETS; ++i) g->frame_malloc.global_free_list[i] = 0; }
COMMON_PORTABLE full_frame *__cilkrts_make_full_frame(__cilkrts_worker *w, __cilkrts_stack_frame *sf) { full_frame *ff; START_INTERVAL(w, INTERVAL_ALLOC_FULL_FRAME) { ff = (full_frame *)__cilkrts_frame_malloc(w, sizeof(*ff)); __cilkrts_mutex_init(&ff->lock); ff->full_frame_magic_0 = FULL_FRAME_MAGIC_0; ff->join_counter = 0; ff->parent = 0; ff->rightmost_child = 0; ff->left_sibling = ff->right_sibling = 0; ff->call_stack = sf; ff->is_call_child = 0; ff->simulated_stolen = 0; ff->children_reducer_map = ff->right_reducer_map = 0; ff->pending_exception = ff->child_pending_exception = ff->right_pending_exception = NULL; ff->sync_sp = 0; #ifdef _WIN32 ff->exception_sp = 0; ff->trylevel = (unsigned long)-1; ff->registration = 0; #endif ff->frame_size = 0; ff->fiber_self = 0; ff->fiber_child = 0; ff->sync_master = 0; /*__cilkrts_init_full_frame_sysdep(w, ff);*/ ff->full_frame_magic_1 = FULL_FRAME_MAGIC_1; } STOP_INTERVAL(w, INTERVAL_ALLOC_FULL_FRAME);