| 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 |
| } |
} |
| |
|