89 for (; nmen; nmen = nmen->
hashlink) {
92 for (clsen = nmen->
classes; clsen; clsen = clsen->
next) {
118 printf(
"replacing vftbl in: ");
138 while (r.
_run ==
true) {
153 while (r.
_methods.empty() ==
false) {
jlong jlong jlong jlong jint jmethodID jint slot
void signal()
Restarts one of the threads that are waiting on this condition variable.
classcache_class_entry * next
Recompiler & get_recompiler()
bool threads_thread_start_internal(Utf8String name, functionptr f)
std::queue< methodinfo * > _methods
hashtable hashtable_classcache
void queue_method(methodinfo *m)
Queue a method for recompilation.
JNIEnv jclass jobject const char * name
void(* functionptr)(void)
classcache_class_entry * classes
void exceptions_print_current_exception(void)
Thread for JIT recompilations.
void class_println(classinfo *c)
u1 * jit_recompile(methodinfo *m)
static Utf8String from_utf8(const char *, size_t)
~Recompiler()
Stop the worker thread.
static void thread()
Worker thread.
bool _run
Flag to stop worker thread.
void unlock()
Unlocks the given mutex object and checks for errors.
classcache_name_entry * hashlink
void Recompiler_queue_method(methodinfo *m)
void wait(Mutex *mutex)
Waits for the condition variable.
void lock()
Locks the given mutex object and checks for errors.
static VM * get_current()
bool start()
Start the worker thread.
static void recompile_replace_vftbl(methodinfo *m)