[BACK]Return to gc.h CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / gc

Diff for /OpenXM_contrib/gc/Attic/gc.h between version 1.1.1.1 and 1.1.1.2

version 1.1.1.1, 1999/11/27 10:58:32 version 1.1.1.2, 2000/04/14 11:07:59
Line 58 
Line 58 
 # if defined(__STDC__) || defined(__cplusplus)  # if defined(__STDC__) || defined(__cplusplus)
 #   define GC_PROTO(args) args  #   define GC_PROTO(args) args
     typedef void * GC_PTR;      typedef void * GC_PTR;
   #   define GC_CONST const
 # else  # else
 #   define GC_PROTO(args) ()  #   define GC_PROTO(args) ()
     typedef char * GC_PTR;      typedef char * GC_PTR;
   #   define GC_CONST
 #  endif  #  endif
   
 # ifdef __cplusplus  # ifdef __cplusplus
Line 96  GC_API GC_PTR (*GC_oom_fn) GC_PROTO((size_t bytes_requ
Line 98  GC_API GC_PTR (*GC_oom_fn) GC_PROTO((size_t bytes_requ
                         /* pointer to a previously allocated heap       */                          /* pointer to a previously allocated heap       */
                         /* object.                                      */                          /* object.                                      */
   
   GC_API int GC_find_leak;
                           /* Do not actually garbage collect, but simply  */
                           /* report inaccessible memory that was not      */
                           /* deallocated with GC_free.  Initial value     */
                           /* is determined by FIND_LEAK macro.            */
   
 GC_API int GC_quiet;    /* Disable statistics output.  Only matters if  */  GC_API int GC_quiet;    /* Disable statistics output.  Only matters if  */
                         /* collector has been compiled with statistics  */                          /* collector has been compiled with statistics  */
                         /* enabled.  This involves a performance cost,  */                          /* enabled.  This involves a performance cost,  */
                         /* and is thus not the default.                 */                          /* and is thus not the default.                 */
   
   GC_API int GC_finalize_on_demand;
                           /* If nonzero, finalizers will only be run in   */
                           /* response to an eplit GC_invoke_finalizers    */
                           /* call.  The default is determined by whether  */
                           /* the FINALIZE_ON_DEMAND macro is defined      */
                           /* when the collector is built.                 */
   
   GC_API int GC_java_finalization;
                           /* Mark objects reachable from finalizable      */
                           /* objects in a separate postpass.  This makes  */
                           /* it a bit safer to use non-topologically-     */
                           /* ordered finalization.  Default value is      */
                           /* determined by JAVA_FINALIZATION macro.       */
   
 GC_API int GC_dont_gc;  /* Dont collect unless explicitly requested, e.g. */  GC_API int GC_dont_gc;  /* Dont collect unless explicitly requested, e.g. */
                         /* because it's not safe.                         */                          /* because it's not safe.                         */
   
Line 111  GC_API int GC_dont_expand;
Line 133  GC_API int GC_dont_expand;
 GC_API int GC_full_freq;    /* Number of partial collections between    */  GC_API int GC_full_freq;    /* Number of partial collections between    */
                             /* full collections.  Matters only if       */                              /* full collections.  Matters only if       */
                             /* GC_incremental is set.                   */                              /* GC_incremental is set.                   */
                               /* Full collections are also triggered if   */
                               /* the collector detects a substantial      */
                               /* increase in the number of in-use heap    */
                               /* blocks.  Values in the tens are now      */
                               /* perfectly reasonable, unlike for         */
                               /* earlier GC versions.                     */
   
 GC_API GC_word GC_non_gc_bytes;  GC_API GC_word GC_non_gc_bytes;
                         /* Bytes not considered candidates for collection. */                          /* Bytes not considered candidates for collection. */
Line 277  GC_API int GC_try_to_collect GC_PROTO((GC_stop_func st
Line 305  GC_API int GC_try_to_collect GC_PROTO((GC_stop_func st
 /* Includes some pages that were allocated but never written.           */  /* Includes some pages that were allocated but never written.           */
 GC_API size_t GC_get_heap_size GC_PROTO((void));  GC_API size_t GC_get_heap_size GC_PROTO((void));
   
   /* Return a lower bound on the number of free bytes in the heap.        */
   GC_API size_t GC_get_free_bytes GC_PROTO((void));
   
 /* Return the number of bytes allocated since the last collection.      */  /* Return the number of bytes allocated since the last collection.      */
 GC_API size_t GC_get_bytes_since_gc GC_PROTO((void));  GC_API size_t GC_get_bytes_since_gc GC_PROTO((void));
   
Line 321  GC_API GC_PTR GC_malloc_atomic_ignore_off_page GC_PROT
Line 352  GC_API GC_PTR GC_malloc_atomic_ignore_off_page GC_PROT
   
 #ifdef GC_ADD_CALLER  #ifdef GC_ADD_CALLER
 #  define GC_EXTRAS GC_RETURN_ADDR, __FILE__, __LINE__  #  define GC_EXTRAS GC_RETURN_ADDR, __FILE__, __LINE__
 #  define GC_EXTRA_PARAMS GC_word ra, char * descr_string, int descr_int  #  define GC_EXTRA_PARAMS GC_word ra, GC_CONST char * descr_string,
                             int descr_int
 #else  #else
 #  define GC_EXTRAS __FILE__, __LINE__  #  define GC_EXTRAS __FILE__, __LINE__
 #  define GC_EXTRA_PARAMS char * descr_string, int descr_int  #  define GC_EXTRA_PARAMS GC_CONST char * descr_string, int descr_int
 #endif  #endif
   
 /* Debugging (annotated) allocation.  GC_gcollect will check            */  /* Debugging (annotated) allocation.  GC_gcollect will check            */
Line 510  GC_API int GC_invoke_finalizers GC_PROTO((void));
Line 542  GC_API int GC_invoke_finalizers GC_PROTO((void));
         /* be finalized.  Return the number of finalizers       */          /* be finalized.  Return the number of finalizers       */
         /* that were run.  Normally this is also called         */          /* that were run.  Normally this is also called         */
         /* implicitly during some allocations.  If              */          /* implicitly during some allocations.  If              */
         /* FINALIZE_ON_DEMAND is defined, it must be called     */          /* GC-finalize_on_demand is nonzero, it must be called  */
         /* explicitly.                                          */          /* explicitly.                                          */
   
 /* GC_set_warn_proc can be used to redirect or filter warning messages. */  /* GC_set_warn_proc can be used to redirect or filter warning messages. */
Line 668  GC_API void (*GC_is_visible_print_proc)
Line 700  GC_API void (*GC_is_visible_print_proc)
 # endif /* SOLARIS_THREADS */  # endif /* SOLARIS_THREADS */
   
   
 #if defined(IRIX_THREADS) || defined(LINUX_THREADS)  #if defined(IRIX_THREADS) || defined(LINUX_THREADS) || defined(HPUX_THREADS)
 /* We treat these similarly. */  /* We treat these similarly. */
 # include <pthread.h>  # include <pthread.h>
 # include <signal.h>  # include <signal.h>
Line 687  GC_API void (*GC_is_visible_print_proc)
Line 719  GC_API void (*GC_is_visible_print_proc)
   
 # if defined(PCR) || defined(SOLARIS_THREADS) || defined(WIN32_THREADS) || \  # if defined(PCR) || defined(SOLARIS_THREADS) || defined(WIN32_THREADS) || \
         defined(IRIX_THREADS) || defined(LINUX_THREADS) || \          defined(IRIX_THREADS) || defined(LINUX_THREADS) || \
         defined(IRIX_JDK_THREADS)          defined(IRIX_JDK_THREADS) || defined(HPUX_THREADS)
         /* Any flavor of threads except SRC_M3. */          /* Any flavor of threads except SRC_M3. */
 /* This returns a list of objects, linked through their first           */  /* This returns a list of objects, linked through their first           */
 /* word.  Its use can greatly reduce lock contention problems, since    */  /* word.  Its use can greatly reduce lock contention problems, since    */
 /* the allocation lock can be acquired and released many fewer times.   */  /* the allocation lock can be acquired and released many fewer times.   */
   /* lb must be large enough to hold the pointer field.                   */
 GC_PTR GC_malloc_many(size_t lb);  GC_PTR GC_malloc_many(size_t lb);
 #define GC_NEXT(p) (*(GC_PTR *)(p))     /* Retrieve the next element    */  #define GC_NEXT(p) (*(GC_PTR *)(p))     /* Retrieve the next element    */
                                         /* in returned list.            */                                          /* in returned list.            */

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.2

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