Index: include/open/hythread.h =================================================================== --- include/open/hythread.h (revision 582545) +++ include/open/hythread.h (working copy) @@ -138,6 +138,8 @@ hythread_tls_alloc PROTOTYPE((hythread_tls_key_t* handle)); extern HY_CFUNC IDATA VMCALL hythread_sleep_interruptable PROTOTYPE((I_64 millis, IDATA nanos)); +extern HY_CFUNC void VMCALL +sync_prototype_entry PROTOTYPE((I_64 millis)); extern HY_CFUNC IDATA VMCALL hythread_monitor_enter_using_threadId PROTOTYPE((hythread_monitor_t monitor, hythread_t threadId)); extern HY_CFUNC void VMCALL Index: include/open/hythread_ext.h =================================================================== --- include/open/hythread_ext.h (revision 582545) +++ include/open/hythread_ext.h (working copy) @@ -175,6 +175,8 @@ typedef void (*hythread_event_callback_proc)(void); +typedef enum SuspendType { J_L_T_SUSPEND, GCSUSPEND } SuspendType; //wjw + /** * Native thread control structure. */ @@ -356,6 +358,13 @@ */ IDATA thread_id; + //wjw + uint32 now_blocked_at_disable_count_0_to_1; + uint32 now_blocked_at_back_branch; + uint32 j_l_t_suspend_request; + uint32 gc_suspend_request; + //wjw + } HyThread; //@} Index: vmcore/src/init/parse_arguments.cpp =================================================================== --- vmcore/src/init/parse_arguments.cpp (revision 582545) +++ vmcore/src/init/parse_arguments.cpp (working copy) @@ -236,8 +236,9 @@ #endif } else if (strcmp(option, "-version") == 0) { // Print the version number and exit - LECHO_VERSION; - LOGGER_EXIT(0); + //LECHO_VERSION; + //LOGGER_EXIT(0); + __asm { int 3 } ; //wjw } else if (strcmp(option, "-showversion") == 0) { if (!version_printed) { // Print the version number and continue Index: vmcore/src/thread/thread_java_basic.cpp =================================================================== --- vmcore/src/thread/thread_java_basic.cpp (revision 582545) +++ vmcore/src/thread/thread_java_basic.cpp (working copy) @@ -420,8 +420,12 @@ * or TM_THREAD_INTERRUPTED in case thread was interrupted during sleep. * @sa java.lang.Thread.sleep() */ +void sync_prototype_entry(jlong); //wjw + IDATA jthread_sleep(jlong millis, jint nanos) { + sync_prototype_entry(millis); //wjw + hythread_t native_thread = hythread_self(); hythread_thread_lock(native_thread); IDATA state = hythread_get_state(native_thread); Index: thread/src/hythr.exp =================================================================== --- thread/src/hythr.exp (revision 582545) +++ thread/src/hythr.exp (working copy) @@ -4,6 +4,7 @@ hythread_detach; hythread_tls_alloc; hythread_sleep_interruptable; +sync_prototype_entry; hythread_cancel; hythread_monitor_enter; hythread_monitor_notify_all; Index: thread/src/hythr.def =================================================================== --- thread/src/hythr.def (revision 582545) +++ thread/src/hythr.def (working copy) @@ -6,6 +6,7 @@ hythread_uses_fast_tls hythread_tls_alloc hythread_sleep_interruptable +sync_prototype_entry hythread_cancel hythread_monitor_enter hythread_monitor_notify_all