handle_ex:
/* Exception handler starts here for all cases. */
- WARN("Caught ACCESS_VIOLATION in marker;"
- " memory mapping disappeared\n", 0);
-
+ {
+ static word warned_gc_no;
+
+ /* Warn about it at most once per collection. */
+ if (warned_gc_no != GC_gc_no) {
+ warned_gc_no = GC_gc_no;
+ WARN("Caught ACCESS_VIOLATION in marker;"
+ " memory mapping disappeared\n", 0);
+ }
+ }
/* We have bad roots on the stack. Discard mark stack. */
/* Rescan from marked objects. Redetermine roots. */
GC_invalidate_mark_state();