This commit was generated by cvs2svn to compensate for changes in r34605,
which included commits to RCS files with non-trunk default branches. From-SVN: r34606
This commit is contained in:
parent
8ba7b39619
commit
2caa2a6997
2 changed files with 42 additions and 6 deletions
|
@ -36,6 +36,14 @@
|
|||
#include "libgc_globals.h"
|
||||
#endif
|
||||
|
||||
#if defined(__MINGW32__) && defined(WIN32_THREADS)
|
||||
# ifdef GC_BUILD
|
||||
# define GC_API __declspec(dllexport)
|
||||
# else
|
||||
# define GC_API __declspec(dllimport)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER) && defined(_DLL)
|
||||
# ifdef GC_BUILD
|
||||
# define GC_API __declspec(dllexport)
|
||||
|
@ -131,6 +139,17 @@ GC_API int GC_dont_expand;
|
|||
/* Dont expand heap unless explicitly requested */
|
||||
/* or forced to. */
|
||||
|
||||
GC_API int GC_use_entire_heap;
|
||||
/* Causes the nonincremental collector to use the */
|
||||
/* entire heap before collecting. This was the only */
|
||||
/* option for GC versions < 5.0. This sometimes */
|
||||
/* results in more large block fragmentation, since */
|
||||
/* very larg blocks will tend to get broken up */
|
||||
/* during each GC cycle. It is likely to result in a */
|
||||
/* larger working set, but lower collection */
|
||||
/* frequencies, and hence fewer instructions executed */
|
||||
/* in the collector. */
|
||||
|
||||
GC_API int GC_full_freq; /* Number of partial collections between */
|
||||
/* full collections. Matters only if */
|
||||
/* GC_incremental is set. */
|
||||
|
@ -353,8 +372,7 @@ GC_API GC_PTR GC_malloc_atomic_ignore_off_page GC_PROTO((size_t lb));
|
|||
|
||||
#ifdef GC_ADD_CALLER
|
||||
# define GC_EXTRAS GC_RETURN_ADDR, __FILE__, __LINE__
|
||||
# define GC_EXTRA_PARAMS GC_word ra, GC_CONST char * s,
|
||||
int i
|
||||
# define GC_EXTRA_PARAMS GC_word ra, GC_CONST char * s, int i
|
||||
#else
|
||||
# define GC_EXTRAS __FILE__, __LINE__
|
||||
# define GC_EXTRA_PARAMS GC_CONST char * s, int i
|
||||
|
@ -388,6 +406,8 @@ GC_API void GC_debug_end_stubborn_change GC_PROTO((GC_PTR));
|
|||
GC_debug_register_finalizer(p, f, d, of, od)
|
||||
# define GC_REGISTER_FINALIZER_IGNORE_SELF(p, f, d, of, od) \
|
||||
GC_debug_register_finalizer_ignore_self(p, f, d, of, od)
|
||||
# define GC_REGISTER_FINALIZER_NO_ORDER(p, f, d, of, od) \
|
||||
GC_debug_register_finalizer_no_order(p, f, d, of, od)
|
||||
# define GC_MALLOC_STUBBORN(sz) GC_debug_malloc_stubborn(sz, GC_EXTRAS);
|
||||
# define GC_CHANGE_STUBBORN(p) GC_debug_change_stubborn(p)
|
||||
# define GC_END_STUBBORN_CHANGE(p) GC_debug_end_stubborn_change(p)
|
||||
|
@ -404,6 +424,8 @@ GC_API void GC_debug_end_stubborn_change GC_PROTO((GC_PTR));
|
|||
GC_register_finalizer(p, f, d, of, od)
|
||||
# define GC_REGISTER_FINALIZER_IGNORE_SELF(p, f, d, of, od) \
|
||||
GC_register_finalizer_ignore_self(p, f, d, of, od)
|
||||
# define GC_REGISTER_FINALIZER_NO_ORDER(p, f, d, of, od) \
|
||||
GC_register_finalizer_no_order(p, f, d, of, od)
|
||||
# define GC_MALLOC_STUBBORN(sz) GC_malloc_stubborn(sz)
|
||||
# define GC_CHANGE_STUBBORN(p) GC_change_stubborn(p)
|
||||
# define GC_END_STUBBORN_CHANGE(p) GC_end_stubborn_change(p)
|
||||
|
@ -482,6 +504,16 @@ GC_API void GC_debug_register_finalizer_ignore_self
|
|||
GC_PROTO((GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
|
||||
GC_finalization_proc *ofn, GC_PTR *ocd));
|
||||
|
||||
/* Another version of the above. It ignores all cycles. */
|
||||
/* It should probably only be used by Java implementations. */
|
||||
GC_API void GC_register_finalizer_no_order
|
||||
GC_PROTO((GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
|
||||
GC_finalization_proc *ofn, GC_PTR *ocd));
|
||||
GC_API void GC_debug_register_finalizer_no_order
|
||||
GC_PROTO((GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
|
||||
GC_finalization_proc *ofn, GC_PTR *ocd));
|
||||
|
||||
|
||||
/* The following routine may be used to break cycles between */
|
||||
/* finalizable objects, thus causing cyclic finalizable */
|
||||
/* objects to be finalized in the correct order. Standard */
|
||||
|
@ -538,6 +570,9 @@ GC_API int GC_unregister_disappearing_link GC_PROTO((GC_PTR * /* link */));
|
|||
GC_API GC_PTR GC_make_closure GC_PROTO((GC_finalization_proc fn, GC_PTR data));
|
||||
GC_API void GC_debug_invoke_finalizer GC_PROTO((GC_PTR obj, GC_PTR data));
|
||||
|
||||
/* Returns !=0 if GC_invoke_finalizers has something to do. */
|
||||
GC_API int GC_should_invoke_finalizers GC_PROTO((void));
|
||||
|
||||
GC_API int GC_invoke_finalizers GC_PROTO((void));
|
||||
/* Run finalizers for all objects that are ready to */
|
||||
/* be finalized. Return the number of finalizers */
|
||||
|
@ -701,7 +736,8 @@ GC_API void (*GC_is_visible_print_proc)
|
|||
# endif /* SOLARIS_THREADS */
|
||||
|
||||
|
||||
#if defined(IRIX_THREADS) || defined(LINUX_THREADS) || defined(HPUX_THREADS)
|
||||
#if !defined(USE_LD_WRAP) && \
|
||||
(defined(IRIX_THREADS) || defined(LINUX_THREADS) || defined(HPUX_THREADS))
|
||||
/* We treat these similarly. */
|
||||
# include <pthread.h>
|
||||
# include <signal.h>
|
||||
|
@ -715,8 +751,9 @@ GC_API void (*GC_is_visible_print_proc)
|
|||
# define pthread_create GC_pthread_create
|
||||
# define pthread_sigmask GC_pthread_sigmask
|
||||
# define pthread_join GC_pthread_join
|
||||
# define dlopen GC_dlopen
|
||||
|
||||
#endif /* IRIX_THREADS || LINUX_THREADS */
|
||||
#endif /* xxxxx_THREADS */
|
||||
|
||||
# if defined(PCR) || defined(SOLARIS_THREADS) || defined(WIN32_THREADS) || \
|
||||
defined(IRIX_THREADS) || defined(LINUX_THREADS) || \
|
||||
|
|
|
@ -372,8 +372,7 @@ GC_API GC_PTR GC_malloc_atomic_ignore_off_page GC_PROTO((size_t lb));
|
|||
|
||||
#ifdef GC_ADD_CALLER
|
||||
# define GC_EXTRAS GC_RETURN_ADDR, __FILE__, __LINE__
|
||||
# define GC_EXTRA_PARAMS GC_word ra, GC_CONST char * s,
|
||||
int i
|
||||
# define GC_EXTRA_PARAMS GC_word ra, GC_CONST char * s, int i
|
||||
#else
|
||||
# define GC_EXTRAS __FILE__, __LINE__
|
||||
# define GC_EXTRA_PARAMS GC_CONST char * s, int i
|
||||
|
|
Loading…
Add table
Reference in a new issue