summaryrefslogtreecommitdiff
path: root/byterun/gc_ctrl.c
diff options
context:
space:
mode:
authorDamien Doligez <damien.doligez-inria.fr>2011-07-20 09:17:07 +0000
committerDamien Doligez <damien.doligez-inria.fr>2011-07-20 09:17:07 +0000
commitc91db736b18c7ed0ec81596b76874f5423d5d331 (patch)
treea967edfcd254aa6844c44e81ea33596a82b7bf87 /byterun/gc_ctrl.c
parent46d5420ca9c695738f7a0baa527d3591d95f067a (diff)
downloadocaml-c91db736b18c7ed0ec81596b76874f5423d5d331.tar.gz
merge changes from 3.12.0 to 3.12.1
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11123 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'byterun/gc_ctrl.c')
-rw-r--r--byterun/gc_ctrl.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/byterun/gc_ctrl.c b/byterun/gc_ctrl.c
index 0fe2215155..9a2e0b08ca 100644
--- a/byterun/gc_ctrl.c
+++ b/byterun/gc_ctrl.c
@@ -467,8 +467,11 @@ CAMLprim value caml_gc_major_slice (value v)
CAMLprim value caml_gc_compaction(value v)
{ Assert (v == Val_unit);
+ caml_gc_message (0x10, "Heap compaction requested\n", 0);
caml_empty_minor_heap ();
caml_finish_major_cycle ();
+ caml_final_do_calls ();
+ caml_empty_minor_heap ();
caml_finish_major_cycle ();
caml_compact_heap ();
caml_final_do_calls ();
@@ -481,7 +484,9 @@ void caml_init_gc (uintnat minor_size, uintnat major_size,
{
uintnat major_heap_size = Bsize_wsize (norm_heapincr (major_size));
- caml_page_table_initialize(Bsize_wsize(minor_size) + major_heap_size);
+ if (caml_page_table_initialize(Bsize_wsize(minor_size) + major_heap_size)){
+ caml_fatal_error ("OCaml runtime error: cannot initialize page table\n");
+ }
caml_set_minor_heap_size (Bsize_wsize (norm_minsize (minor_size)));
caml_major_heap_increment = Bsize_wsize (norm_heapincr (major_incr));
caml_percent_free = norm_pfree (percent_fr);