fix broken resize of place array
Change default array size from 32 to 4, so that the resize path is used (and tested) on more typical machines.
This commit is contained in:
parent
fcfa969b4a
commit
b443f3fe68
|
@ -2984,11 +2984,11 @@ void GC_allow_master_gc_check() {
|
||||||
static void NewGCMasterInfo_initialize() {
|
static void NewGCMasterInfo_initialize() {
|
||||||
int i;
|
int i;
|
||||||
MASTERGCINFO = ofm_malloc_zero(sizeof(NewGCMasterInfo));
|
MASTERGCINFO = ofm_malloc_zero(sizeof(NewGCMasterInfo));
|
||||||
MASTERGCINFO->size = 32;
|
MASTERGCINFO->size = 4;
|
||||||
MASTERGCINFO->alive = 0;
|
MASTERGCINFO->alive = 0;
|
||||||
MASTERGCINFO->ready = 0;
|
MASTERGCINFO->ready = 0;
|
||||||
MASTERGCINFO->signal_fds = (void **)ofm_malloc(sizeof(void*) * MASTERGCINFO->size);
|
MASTERGCINFO->signal_fds = (void **)ofm_malloc(sizeof(void*) * MASTERGCINFO->size);
|
||||||
for (i=0; i < 32; i++ ) {
|
for (i=0; i < MASTERGCINFO->size; i++ ) {
|
||||||
MASTERGCINFO->signal_fds[i] = (void *)REAPED_SLOT_AVAILABLE;
|
MASTERGCINFO->signal_fds[i] = (void *)REAPED_SLOT_AVAILABLE;
|
||||||
}
|
}
|
||||||
mzrt_rwlock_create(&MASTERGCINFO->cangc);
|
mzrt_rwlock_create(&MASTERGCINFO->cangc);
|
||||||
|
@ -3157,7 +3157,6 @@ static intptr_t NewGCMasterInfo_find_free_id() {
|
||||||
void **new_signal_fds;
|
void **new_signal_fds;
|
||||||
|
|
||||||
size = MASTERGCINFO->size * 2;
|
size = MASTERGCINFO->size * 2;
|
||||||
MASTERGCINFO->alive++;
|
|
||||||
new_signal_fds = ofm_malloc(sizeof(void*) * size);
|
new_signal_fds = ofm_malloc(sizeof(void*) * size);
|
||||||
memcpy(new_signal_fds, MASTERGCINFO->signal_fds, sizeof(void*) * MASTERGCINFO->size);
|
memcpy(new_signal_fds, MASTERGCINFO->signal_fds, sizeof(void*) * MASTERGCINFO->size);
|
||||||
|
|
||||||
|
@ -3165,6 +3164,8 @@ static intptr_t NewGCMasterInfo_find_free_id() {
|
||||||
new_signal_fds[i] = (void *)REAPED_SLOT_AVAILABLE;
|
new_signal_fds[i] = (void *)REAPED_SLOT_AVAILABLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ofm_free(MASTERGCINFO->signal_fds, sizeof(void*) * MASTERGCINFO->size);
|
||||||
|
|
||||||
MASTERGCINFO->signal_fds = new_signal_fds;
|
MASTERGCINFO->signal_fds = new_signal_fds;
|
||||||
MASTERGCINFO->size = size;
|
MASTERGCINFO->size = size;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user