47 inline static void enter ();
48 inline static void leave ();
49 inline static bool inside();
62 #if defined(ENABLE_GC_CACAO)
66 assert(t->gc_critical ==
false);
68 t->gc_critical =
true;
78 #if defined(ENABLE_GC_CACAO)
82 assert(t->gc_critical ==
true);
84 t->gc_critical =
false;
96 #if defined(ENABLE_GC_CACAO)
98 return t->gc_critical;
119 void gc_init(
size_t heapmaxsize,
size_t heapstartsize);
125 #if defined(ENABLE_GC_CACAO)
152 #if defined(ENABLE_GC_CACAO)
155 return (int32_t)(intptr_t) obj;
void gc_unregister_current_thread()
void gc_init(u4 heapmaxsize, u4 heapstartsize)
void gc_weakreference_unregister(java_object_t **ref)
void gc_weakreference_register(java_object_t **ref, int32_t reftype)
s4 heap_get_hashcode(java_object_t *o)
static int32_t heap_hashcode(java_object_t *obj)
JNIEnv jthread jobject jclass jlong size
s8 gc_get_free_bytes(void)
static void leave()
Leaves a LLNI critical section and allows the GC to move objects around on the collected heap again...
s8 gc_get_max_heap_size(void)
static bool inside()
Checks if the calling thread is inside a GC critical section.
void * heap_alloc(u4 size, u4 references, methodinfo *finalizer, bool collect)
void gc_invoke_finalizers(void)
void * heap_alloc_uncollectable(u4 size)
static void enter()
Enters a LLNI critical section which prevents the GC from moving objects around on the collected heap...
Critical section for the GC.
void gc_finalize_all(void)
s8 gc_get_total_bytes(void)
void * gc_out_of_memory(size_t bytes_requested)
void gc_reference_register(java_object_t **ref, int32_t reftype)
static threadobject * thread_get_current()
Return the threadobject for the current thread.
s8 gc_get_heap_size(void)
void heap_init_objectheader(java_object_t *o, u4 bytelength)
void gc_reference_unregister(java_object_t **ref)
void gc_register_current_thread()