mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-02 02:10:19 +02:00
Merge remote-tracking branch 'whippet/main' into wip-whippet
This commit is contained in:
commit
8c4866cd5c
3 changed files with 10 additions and 4 deletions
|
@ -209,7 +209,8 @@ gc_visit_ephemeron_key(struct gc_edge edge, struct gc_heap *heap) {
|
|||
if (large_object_space_contains_with_lock(lospace, ref))
|
||||
return large_object_space_is_marked(lospace, ref);
|
||||
|
||||
GC_CRASH();
|
||||
// Assume it is in the extern space.
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -585,9 +586,11 @@ grow_heap_if_necessary(struct gc_heap *heap,
|
|||
struct nofl_space *nofl = heap_nofl_space(heap);
|
||||
size_t pending = nofl_space_shrink(nofl, 0);
|
||||
|
||||
// If we cannot defragment and are making no progress but have a
|
||||
// growable heap, expand by 25% to add some headroom.
|
||||
size_t needed_headroom =
|
||||
GC_CONSERVATIVE_TRACE
|
||||
? nofl_active_block_count (nofl) * NOFL_BLOCK_SIZE / 16
|
||||
? (progress ? 0 : nofl_active_block_count (nofl) * NOFL_BLOCK_SIZE / 4)
|
||||
: 0;
|
||||
size_t headroom = nofl_empty_block_count(nofl) * NOFL_BLOCK_SIZE;
|
||||
|
||||
|
|
|
@ -461,7 +461,9 @@ int gc_visit_ephemeron_key(struct gc_edge edge, struct gc_heap *heap) {
|
|||
|
||||
if (large_object_space_contains_with_lock(heap_large_object_space(heap), ref))
|
||||
return large_object_space_is_marked(heap_large_object_space(heap), ref);
|
||||
GC_CRASH();
|
||||
|
||||
// Assume it is in the extern space.
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int mutators_are_stopping(struct gc_heap *heap) {
|
||||
|
|
|
@ -278,7 +278,8 @@ int gc_visit_ephemeron_key(struct gc_edge edge, struct gc_heap *heap) {
|
|||
} else if (large_object_space_contains_with_lock(heap_large_object_space(heap), ref)) {
|
||||
return large_object_space_is_marked(heap_large_object_space(heap), ref);
|
||||
}
|
||||
GC_CRASH();
|
||||
// Assume it is in the extern space.
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void trace(struct gc_edge edge, struct gc_heap *heap, void *visit_data) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue