Changeset 12869 in project for chicken


Ignore:
Timestamp:
12/22/08 10:02:39 (11 years ago)
Author:
felix winkelmann
Message:

finalizer bug not fixed, perhaps now

Location:
chicken/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • chicken/trunk/runtime.c

    r12838 r12869  
    27072707      mark(&gcrp->value);
    27082708
     2709    /* mark finalizer procedures: */
     2710    for(flist = finalizer_list; flist != NULL; flist = flist->next)
     2711      mark(&flist->finalizer);
     2712
    27092713    mark_system_globals();
    27102714  }
     
    27712775        for(flist = finalizer_list; flist != NULL; flist = flist->next) {
    27722776          mark(&flist->item);
    2773           mark(&flist->finalizer);
    27742777          ++fcount;
    27752778        }
     
    27812784        j = fcount = 0;
    27822785
    2783         for(flist = finalizer_list; flist != NULL; flist = flist->next)
    2784           mark(&flist->finalizer);
    2785 
    27862786        for(flist = finalizer_list; flist != NULL; flist = flist->next) {
    27872787          if(j < C_max_pending_finalizers) {
     
    27982798
    27992799      if(pending_finalizer_count > 0 && gc_report_flag)
    2800         C_printf(C_text("[GC] finalizers pending for rescan: %d (%d live)\n"),
     2800        C_printf(C_text("[GC] finalizers pending: %d (%d live)\n"),
    28012801                 pending_finalizer_count, live_finalizer_count);
    28022802
  • chicken/trunk/tests/test-finalizers.scm

    r12838 r12869  
    1010   x
    1111   (lambda (o)
    12      (format #t "Delete: ~A~%" o)
     12     (format #t "Delete: ~A (y: ~a)~%" o y-f)
    1313     (set! x-f #t)))
    1414  #t)
     
    2626(set! x #f)
    2727(gc #t)
    28 (assert x-f)
     28(assert (not x-f))
    2929(assert (not y-f))
    3030(set! y #f)
    3131(gc #t)
     32(assert y-f)
    3233(assert x-f)
Note: See TracChangeset for help on using the changeset viewer.