version 1.1.1.1, 1999/11/27 10:58:32 |
version 1.1.1.2, 2000/04/14 11:07:57 |
|
|
# else |
# else |
# if defined(IRIX_THREADS) || defined(LINUX_THREADS) \ |
# if defined(IRIX_THREADS) || defined(LINUX_THREADS) \ |
|| defined(IRIX_JDK_THREADS) |
|| defined(IRIX_JDK_THREADS) |
# ifdef UNDEFINED |
|
pthread_mutex_t GC_allocate_ml = PTHREAD_MUTEX_INITIALIZER; |
|
# endif |
|
pthread_t GC_lock_holder = NO_THREAD; |
pthread_t GC_lock_holder = NO_THREAD; |
# else |
# else |
--> declare allocator lock here |
# if defined(HPUX_THREADS) |
|
pthread_mutex_t GC_allocate_ml = PTHREAD_MUTEX_INITIALIZER; |
|
# else |
|
--> declare allocator lock here |
|
# endif |
# endif |
# endif |
# endif |
# endif |
# endif |
# endif |
Line 73 GC_bool GC_dont_gc = 0; |
|
Line 74 GC_bool GC_dont_gc = 0; |
|
|
|
GC_bool GC_quiet = 0; |
GC_bool GC_quiet = 0; |
|
|
|
#ifdef FIND_LEAK |
|
int GC_find_leak = 1; |
|
#else |
|
int GC_find_leak = 0; |
|
#endif |
|
|
/*ARGSUSED*/ |
/*ARGSUSED*/ |
GC_PTR GC_default_oom_fn GC_PROTO((size_t bytes_requested)) |
GC_PTR GC_default_oom_fn GC_PROTO((size_t bytes_requested)) |
{ |
{ |
Line 385 size_t GC_get_heap_size GC_PROTO(()) |
|
Line 392 size_t GC_get_heap_size GC_PROTO(()) |
|
return ((size_t) GC_heapsize); |
return ((size_t) GC_heapsize); |
} |
} |
|
|
|
size_t GC_get_free_bytes GC_PROTO(()) |
|
{ |
|
return ((size_t) GC_large_free_bytes); |
|
} |
|
|
size_t GC_get_bytes_since_gc GC_PROTO(()) |
size_t GC_get_bytes_since_gc GC_PROTO(()) |
{ |
{ |
return ((size_t) WORDS_TO_BYTES(GC_words_allocd)); |
return ((size_t) WORDS_TO_BYTES(GC_words_allocd)); |
Line 427 void GC_init_inner() |
|
Line 439 void GC_init_inner() |
|
# ifdef MSWIN32 |
# ifdef MSWIN32 |
GC_init_win32(); |
GC_init_win32(); |
# endif |
# endif |
# if defined(LINUX) && defined(POWERPC) |
# if defined(LINUX) && \ |
GC_init_linuxppc(); |
(defined(POWERPC) || defined(ALPHA) || defined(SPARC) || defined(IA64)) |
|
GC_init_linux_data_start(); |
# endif |
# endif |
# if defined(LINUX) && defined(SPARC) |
|
GC_init_linuxsparc(); |
|
# endif |
|
# ifdef SOLARIS_THREADS |
# ifdef SOLARIS_THREADS |
GC_thr_init(); |
GC_thr_init(); |
/* We need dirty bits in order to find live stack sections. */ |
/* We need dirty bits in order to find live stack sections. */ |
GC_dirty_init(); |
GC_dirty_init(); |
# endif |
# endif |
# if defined(IRIX_THREADS) || defined(LINUX_THREADS) \ |
# if defined(IRIX_THREADS) || defined(LINUX_THREADS) \ |
|| defined(IRIX_JDK_THREADS) |
|| defined(IRIX_JDK_THREADS) || defined(HPUX_THREADS) |
GC_thr_init(); |
GC_thr_init(); |
# endif |
# endif |
# if !defined(THREADS) || defined(SOLARIS_THREADS) || defined(WIN32_THREADS) \ |
# if !defined(THREADS) || defined(SOLARIS_THREADS) || defined(WIN32_THREADS) \ |
|| defined(IRIX_THREADS) || defined(LINUX_THREADS) |
|| defined(IRIX_THREADS) || defined(LINUX_THREADS) \ |
|
|| defined(HPUX_THREADS) |
if (GC_stackbottom == 0) { |
if (GC_stackbottom == 0) { |
GC_stackbottom = GC_get_stack_base(); |
GC_stackbottom = GC_get_stack_base(); |
} |
} |
Line 558 void GC_init_inner() |
|
Line 569 void GC_init_inner() |
|
|
|
void GC_enable_incremental GC_PROTO(()) |
void GC_enable_incremental GC_PROTO(()) |
{ |
{ |
# if !defined(FIND_LEAK) && !defined(SMALL_CONFIG) |
# if !defined(SMALL_CONFIG) |
|
if (!GC_find_leak) { |
DCL_LOCK_STATE; |
DCL_LOCK_STATE; |
|
|
DISABLE_SIGNALS(); |
DISABLE_SIGNALS(); |
Line 596 void GC_enable_incremental GC_PROTO(()) |
|
Line 608 void GC_enable_incremental GC_PROTO(()) |
|
out: |
out: |
UNLOCK(); |
UNLOCK(); |
ENABLE_SIGNALS(); |
ENABLE_SIGNALS(); |
|
} |
# endif |
# endif |
} |
} |
|
|