26 #ifndef THREADOBJECT_HPP_
27 #define THREADOBJECT_HPP_ 1
30 # error "Do not directly include this header, include threads/thread.hpp instead"
36 #if defined(ENABLE_TLH)
43 #if defined(ENABLE_THREADS)
44 # include "threads/posix/threadobject-posix.hpp"
46 # include "threads/none/threadobject-none.hpp"
99 #if defined(ENABLE_INTRP)
103 #if defined(ENABLE_GC_CACAO)
112 #if defined(ENABLE_DEBUG_FILTER)
121 #if defined(ENABLE_TLH)
125 #if defined(ENABLE_ESCAPE_REASON)
126 void *escape_reasons;
133 #if defined(HAVE___THREAD)
135 #define THREADOBJECT thread_current
141 #define THREADOBJECT \
142 ((threadobject *) pthread_getspecific(thread_current_key))
144 extern pthread_key_t thread_current_key;
151 #if defined(ENABLE_GC_CACAO)
152 # define THREAD_NATIVEWORLD_ENTER THREADOBJECT->flags |= THREAD_FLAG_IN_NATIVE
153 # define THREAD_NATIVEWORLD_EXIT THREADOBJECT->flags &= ~THREAD_FLAG_IN_NATIVE
155 # define THREAD_NATIVEWORLD_ENTER
156 # define THREAD_NATIVEWORLD_EXIT
162 #if defined(ENABLE_DEBUG_FILTER)
163 # define FILTERVERBOSECALLCTR (THREADOBJECT->filterverbosecallctr)
169 # define TRACEJAVACALLINDENT (THREADOBJECT->tracejavacallindent)
170 # define TRACEJAVACALLCOUNT (THREADOBJECT->tracejavacallcount)
184 #if defined(ENABLE_GC_CACAO)
189 #if defined(ENABLE_INTRP)
205 #if defined(HAVE___THREAD)
208 t = (
threadobject *) pthread_getspecific(thread_current_key);
222 #if defined(HAVE___THREAD)
227 result = pthread_setspecific(thread_current_key, t);
231 vm_abort(
"thread_set_current: pthread_setspecific failed");
detail::threadobject impl
struct stackframeinfo_t * _stackframeinfo
struct threadobject * flc_list
Dummy implementation of a mutex.
struct threadobject * flc_next
void vm_abort(const char *text,...)
struct localref_table * _localref_table
java_object_t * _exceptionptr
static void thread_set_current(threadobject *t)
Set the current Thread object.
static threadobject * thread_get_current(void)
Return the Thread object of the current thread.
SuspendReason suspend_reason
Dummy condition variable.
threadobject * thread_current
static struct stackframeinfo_t * threads_get_current_stackframeinfo(void)
struct threadobject * flc_tail
static void threads_set_current_stackframeinfo(struct stackframeinfo_t *sfi)
java_handle_t * flc_object
u2 filterverbosecallctr[2]
DumpMemory * _dumpmemory
Dump memory structure.
Thread-local dump memory structure.