Merge pull request #3289 from BrzVlad/fix-critical-finalizer
authorRodrigo Kumpera <kumpera@gmail.com>
Thu, 21 Jul 2016 22:35:06 +0000 (15:35 -0700)
committerGitHub <noreply@github.com>
Thu, 21 Jul 2016 22:35:06 +0000 (15:35 -0700)
[sgen] Fix critical/normal finalization order at domain unload

1  2 
mono/sgen/sgen-gc.h

diff --combined mono/sgen/sgen-gc.h
index 003c3a5fa1dfe4de3f53d3534c7473505c0e9df9,d600efbe8da93d0296f4c1bde6f9ba5fd1bc4715..c08502dc55e2e0517bbf59df732619f56ae42748
@@@ -303,8 -303,6 +303,8 @@@ void sgen_check_section_scan_starts (GC
  
  void sgen_conservatively_pin_objects_from (void **start, void **end, void *start_nursery, void *end_nursery, int pin_type);
  
 +gboolean sgen_gc_initialized (void);
 +
  /* Keep in sync with description_for_type() in sgen-internal.c! */
  enum {
        INTERNAL_MEM_PIN_QUEUE,
@@@ -813,7 -811,7 +813,7 @@@ void sgen_process_fin_stage_entries (vo
  gboolean sgen_have_pending_finalizers (void);
  void sgen_object_register_for_finalization (GCObject *obj, void *user_data);
  
int sgen_gather_finalizers_if (SgenObjectPredicateFunc predicate, void *user_data, GCObject **out_array, int out_size);
void sgen_finalize_if (SgenObjectPredicateFunc predicate, void *user_data, volatile gboolean *suspend);
  void sgen_remove_finalizers_if (SgenObjectPredicateFunc predicate, void *user_data, int generation);
  
  void sgen_register_disappearing_link (GCObject *obj, void **link, gboolean track, gboolean in_gc);