Ignore:
Timestamp:
May 22, 2013, 7:23:19 AM (7 years ago)
Author:
gb
Message:

arm-exceptions.c, x86-exceptions.c, ppc-exceptions.c: if we set an

egc refbit, set ephemeral_ref.

memory.c: clear ephermal_ref when zeroing refbits if managed_static_area

empty. Screw: need two booleans.

gc.h, gc-common.c: mark_memoized_area returns a boolean. Only

process (mark-,forward-) memoized area if ephemeral_ref is true.

As indicated above: if this idea (only process the refmap if there's
reason to believe that it contains an ephemeral reference) is worthwhile,
it's likely to be a better idea to maintain two flags in the write barrier
on platforms where we use a managed static area.

For now, see if this has the intended effect.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/lisp-kernel/arm-exceptions.c

    r15802 r15814  
    16781678          ((LispObj)ea < val)) {
    16791679        atomic_set_bit(refbits, bitnumber);
     1680        ephemeral_ref = 1;
    16801681        if (need_memoize_root) {
    16811682          bitnumber = area_dnode(root, lisp_global(REF_BASE));
Note: See TracChangeset for help on using the changeset viewer.