[BACK]Return to alloc.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / gc

Diff for /OpenXM_contrib2/asir2000/gc/alloc.c between version 1.6 and 1.8

version 1.6, 2002/07/24 08:00:06 version 1.8, 2002/07/25 02:48:53
Line 93  extern signed_word GC_mem_found;  /* Number of reclaim
Line 93  extern signed_word GC_mem_found;  /* Number of reclaim
 GC_bool GC_dont_expand = 0;  GC_bool GC_dont_expand = 0;
   
 word GC_free_space_divisor = 3;  word GC_free_space_divisor = 3;
   word GC_free_space_numerator = 1;
   
 extern GC_bool GC_collection_in_progress();  extern GC_bool GC_collection_in_progress();
                 /* Collection is in progress, or was abandoned. */                  /* Collection is in progress, or was abandoned. */
Line 159  static word min_words_allocd()
Line 160  static word min_words_allocd()
                                    /* use a bit more of large empty heap */                                     /* use a bit more of large empty heap */
                                + total_root_size);                                 + total_root_size);
     if (TRUE_INCREMENTAL) {      if (TRUE_INCREMENTAL) {
         return scan_size / (2 * GC_free_space_divisor);          return scan_size * GC_free_space_numerator / (2 * GC_free_space_divisor);
     } else {      } else {
         return scan_size / GC_free_space_divisor;          return scan_size * GC_free_space_numerator / GC_free_space_divisor;
     }      }
 }  }
   
Line 463  GC_stop_func stop_func;
Line 464  GC_stop_func stop_func;
 #   if defined(CONDPRINT) && !defined(PRINTTIMES)  #   if defined(CONDPRINT) && !defined(PRINTTIMES)
         if (GC_print_stats) GET_TIME(start_time);          if (GC_print_stats) GET_TIME(start_time);
 #   endif  #   endif
       GC_timerstart();
     STOP_WORLD();      STOP_WORLD();
 #   ifdef CONDPRINT  #   ifdef CONDPRINT
       if (GC_print_stats) {        if (GC_print_stats) {
Line 495  GC_stop_func stop_func;
Line 497  GC_stop_func stop_func;
 #                   endif  #                   endif
                     GC_deficit = i; /* Give the mutator a chance. */                      GC_deficit = i; /* Give the mutator a chance. */
                     START_WORLD();                      START_WORLD();
                           GC_timerstop();
                     return(FALSE);                      return(FALSE);
             }              }
             if (GC_mark_some((ptr_t)(&dummy))) break;              if (GC_mark_some((ptr_t)(&dummy))) break;
Line 528  GC_stop_func stop_func;
Line 531  GC_stop_func stop_func;
         }          }
   
     START_WORLD();      START_WORLD();
       GC_timerstop();
 #   ifdef PRINTTIMES  #   ifdef PRINTTIMES
         GET_TIME(current_time);          GET_TIME(current_time);
         GC_printf1("World-stopped marking took %lu msecs\n",          GC_printf1("World-stopped marking took %lu msecs\n",
Line 608  void GC_finish_collection()
Line 612  void GC_finish_collection()
         GET_TIME(start_time);          GET_TIME(start_time);
         finalize_time = start_time;          finalize_time = start_time;
 #   endif  #   endif
           GC_timerstart();
   
 #   ifdef GATHERSTATS  #   ifdef GATHERSTATS
         GC_mem_found = 0;          GC_mem_found = 0;
Line 724  void GC_finish_collection()
Line 729  void GC_finish_collection()
                    MS_TIME_DIFF(finalize_time,start_time),                     MS_TIME_DIFF(finalize_time,start_time),
                    MS_TIME_DIFF(done_time,finalize_time));                     MS_TIME_DIFF(done_time,finalize_time));
 #   endif  #   endif
           GC_timerstop();
 }  }
   
 /* Externally callable routine to invoke full, stop-world collection */  /* Externally callable routine to invoke full, stop-world collection */
Line 926  word n;
Line 932  word n;
     GC_prev_heap_addr = GC_last_heap_addr;      GC_prev_heap_addr = GC_last_heap_addr;
     GC_last_heap_addr = (ptr_t)space;      GC_last_heap_addr = (ptr_t)space;
     GC_add_to_heap(space, bytes);      GC_add_to_heap(space, bytes);
   #if defined(VISUAL_LIB)
           SendHeapSize();
   #endif
     return(TRUE);      return(TRUE);
 }  }
   
Line 1021  int kind;
Line 1030  int kind;
   
     if (sz == 0) return(0);      if (sz == 0) return(0);
   
   #if defined(VISUAL)
           {
   #include <signal.h>
                   extern int recv_intr;
                   if ( recv_intr ) {
                           if ( recv_intr == 1 ) {
                                   recv_intr = 0;
                                   int_handler();
                           } else {
                                   recv_intr = 0;
                                   ox_usr1_handler(0);
                           }
                   }
           }
   #endif
     while (*flh == 0) {      while (*flh == 0) {
       ENTER_GC();        ENTER_GC();
       /* Do our share of marking work */        /* Do our share of marking work */

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.8

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>