version 1.1.1.1, 1999/12/03 07:39:10 |
version 1.2, 2000/04/10 08:31:31 |
|
|
# 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) || defined(ALPHA) || defined(SPARC)) |
# if defined(LINUX) && \ |
|
(defined(POWERPC) || defined(ALPHA) || defined(SPARC) || defined(IA64)) |
GC_init_linux_data_start(); |
GC_init_linux_data_start(); |
# endif |
# endif |
# ifdef SOLARIS_THREADS |
# ifdef SOLARIS_THREADS |
Line 436 void GC_init_inner() |
|
Line 449 void GC_init_inner() |
|
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 555 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 593 void GC_enable_incremental GC_PROTO(()) |
|
Line 608 void GC_enable_incremental GC_PROTO(()) |
|
out: |
out: |
UNLOCK(); |
UNLOCK(); |
ENABLE_SIGNALS(); |
ENABLE_SIGNALS(); |
|
} |
# endif |
# endif |
} |
} |
|
|