pike.git / src / gc.c

version» Context lines:

pike.git/src/gc.c:1:   /*   || This file is part of Pike. For copyright information see COPYRIGHT.   || Pike is distributed under GPL, LGPL and MPL. See the file COPYING   || for more information. - || $Id: gc.c,v 1.208 2003/02/15 17:33:33 grubba Exp $ + || $Id: gc.c,v 1.209 2003/03/14 15:50:44 grubba Exp $   */      #include "global.h"      struct callback *gc_evaluator_callback=0;      #include "array.h"   #include "multiset.h"   #include "mapping.h"   #include "object.h"
pike.git/src/gc.c:26:   #include "interpret.h"   #include "bignum.h"   #include "pike_threadlib.h"      #include "gc.h"   #include "main.h"   #include <math.h>      #include "block_alloc.h"    - RCSID("$Id: gc.c,v 1.208 2003/02/15 17:33:33 grubba Exp $"); + RCSID("$Id: gc.c,v 1.209 2003/03/14 15:50:44 grubba Exp $");      int gc_enabled = 1;      /* These defaults are only guesses and hardly tested at all. Please improve. */   double gc_garbage_ratio_low = 0.2;   double gc_time_ratio = 0.05;   double gc_garbage_ratio_high = 0.5;      /* This slowness factor approximately corresponds to the average over    * the last ten gc rounds. (0.9 == 1 - 1/10) */
pike.git/src/gc.c:2433:    SET_ONERROR(tmp, free_obj_arr, obj_arr_);       {    struct gc_frame *p;    unsigned cycle = 0;    *obj_arr_ = allocate_array(0);       for (p = kill_list; p;) {    if ((cycle = CYCLE(p))) {    push_object((struct object *) p->data); +  dmalloc_touch_svalue(Pike_sp-1);    *obj_arr_ = append_array(*obj_arr_, --Pike_sp);    }    p = NEXT(p);    if (p ? ((unsigned)(CYCLE(p) != cycle)) : cycle) {    if ((*obj_arr_)->size >= 2) {    push_constant_text("gc");    push_constant_text("bad_cycle");    push_array(*obj_arr_);    *obj_arr_ = 0;    SAFE_APPLY_MASTER("runtime_warning", 3);