Exemplo n.º 1
0
void caml_finish_marking () {
  caml_save_stack_gc();
  caml_do_local_roots(&caml_darken, caml_domain_self());
  caml_scan_global_roots(&caml_darken);
  caml_empty_mark_stack();
  caml_domain_state->allocated_words = 0;
  caml_restore_stack_gc();
}
Exemplo n.º 2
0
void caml_finish_marking_domain (struct domain* domain) {
  //caml_gc_log("caml_finish_marking_domain(0): domain=%d", domain->id);
  caml_save_stack_gc();
  caml_do_local_roots(&caml_darken, domain);
  caml_empty_mark_stack_domain(domain);
  /* Previous step might have pushed values into our mark stack. Hence,
   * empty our mark stack */
  caml_empty_mark_stack();
  caml_domain_state->allocated_words = 0;
  caml_restore_stack_gc();
  //caml_gc_log("caml_finish_marking_domain(1): domain=%d", domain->id);
}