@@ -7,12 +7,10 @@ use crate::thread::pool::ThreadPool;
77use crate :: thread:: { JavaThread , JavaThreadBuilder } ;
88
99use std:: cmp;
10- use std:: sync:: atomic:: AtomicUsize ;
1110
1211use :: jni:: env:: JniEnv ;
13- use :: jni:: sys:: { jboolean, jint , jlong} ;
12+ use :: jni:: sys:: { jboolean, jlong} ;
1413
15- include_generated ! ( "native/java/lang/def/Thread.registerNatives.rs" ) ;
1614include_generated ! ( "native/java/lang/def/Thread.definitions.rs" ) ;
1715
1816pub fn findScopedValueBindings ( _env : JniEnv , _class : ClassPtr ) -> Reference /* java.lang.Object */
@@ -25,14 +23,6 @@ pub fn currentCarrierThread(_env: JniEnv, _class: ClassPtr) -> Reference /* java
2523 unimplemented ! ( "java.lang.Thread#currentCarrierThread" ) ;
2624}
2725
28- pub fn currentThread ( env : JniEnv , _class : ClassPtr ) -> Reference /* java.lang.Thread */
29- {
30- unsafe {
31- let thread = JavaThread :: for_env ( env. raw ( ) . cast_const ( ) ) ;
32- ( * thread) . obj ( ) . expect ( "current thread should exist" )
33- }
34- }
35-
3626pub fn setCurrentThread (
3727 _env : JniEnv ,
3828 _this : Reference , // java.lang.Thread
@@ -54,14 +44,6 @@ pub fn setScopedValueCache(
5444 unimplemented ! ( "java.lang.Thread#setScopedValueCache" ) ;
5545}
5646
57- pub fn ensureMaterializedForStackWalk (
58- _env : JniEnv ,
59- _class : ClassPtr ,
60- _o : Reference , // java.lang.Object
61- ) {
62- // Nothing to do
63- }
64-
6547pub fn yield0 ( _env : JniEnv , _class : ClassPtr ) {
6648 std:: thread:: yield_now ( ) ;
6749}
@@ -71,35 +53,6 @@ pub fn sleepNanos0(_env: JniEnv, _class: ClassPtr, _nanos: jlong) {
7153 unimplemented ! ( "java.lang.Thread#sleepNanos0" ) ;
7254}
7355
74- pub fn start0 ( _env : JniEnv , this : Reference /* java.lang.Thread */ ) {
75- {
76- if let Some ( existing_thread) = ThreadPool :: find_from_obj ( this) {
77- throw ! ( existing_thread, IllegalThreadStateException ) ;
78- }
79- }
80-
81- let holder = classes:: java:: lang:: Thread :: holder ( this. extract_class ( ) ) ;
82- let stack_size_raw = classes:: java:: lang:: Thread :: holder:: stackSize ( holder. extract_class ( ) ) ;
83-
84- let mut thread_builder = JavaThreadBuilder :: new ( )
85- . obj ( this)
86- . entry_point ( JavaThread :: default_entry_point) ;
87-
88- if stack_size_raw > 0 {
89- let stack_size = cmp:: min ( stack_size_raw as usize , u32:: MAX as usize ) ;
90- thread_builder = thread_builder. stack_size ( stack_size) ;
91- }
92-
93- let thread = thread_builder. finish ( ) ;
94-
95- let obj = thread. obj ( ) . expect ( "current thread object should exist" ) ;
96- let holder = classes:: java:: lang:: Thread :: holder ( obj. extract_class ( ) ) ;
97- classes:: java:: lang:: Thread :: holder:: set_threadStatus (
98- holder. extract_class ( ) ,
99- ThreadStatus :: Runnable ,
100- ) ;
101- }
102-
10356pub fn holdsLock (
10457 _env : JniEnv ,
10558 _class : ClassPtr ,
@@ -130,23 +83,6 @@ pub fn getThreads(_env: JniEnv, _class: ClassPtr) -> Reference /* []java.lang.Th
13083 unimplemented ! ( "java.lang.Thread#getThreads" ) ;
13184}
13285
133- pub fn setPriority0 (
134- _env : JniEnv ,
135- this : Reference , // java.lang.Thread
136- new_priority : jint ,
137- ) {
138- let holder = classes:: java:: lang:: Thread :: holder ( this. extract_class ( ) ) ;
139- classes:: java:: lang:: Thread :: holder:: set_priority ( holder. extract_class ( ) , new_priority) ;
140-
141- let java_thread = ThreadPool :: find_from_obj ( this) ;
142- let Some ( _thread) = java_thread else {
143- return ;
144- } ;
145-
146- // Thread is alive...
147- todo ! ( "Set priority on JavaThread?" )
148- }
149-
15086pub fn interrupt0 ( _env : JniEnv , _this : Reference /* java.lang.Thread */ ) {
15187 unimplemented ! ( "java.lang.Thread#interrupt" ) ;
15288}
@@ -162,11 +98,3 @@ pub fn setNativeName(
16298) {
16399 unimplemented ! ( "java.lang.Thread#setNativeName" ) ;
164100}
165-
166- pub fn getNextThreadIdOffset ( _env : JniEnv , _class : ClassPtr ) -> jlong {
167- // https://github.com/openjdk/jdk/blob/a3b58ee5cd1ec0ea78649d4128d272458b05eb13/src/java.base/share/classes/java/lang/Thread.java#L624-L627
168- const INITIAL_THREAD_ID : usize = 3 ;
169- static NEXT_THREAD_ID : AtomicUsize = AtomicUsize :: new ( INITIAL_THREAD_ID ) ;
170-
171- NEXT_THREAD_ID . as_ptr ( ) as jlong
172- }
0 commit comments