192 */
193 private long stackSize;
194
195 /*
196 * JVM-private state that persists after native thread termination.
197 */
198 private long nativeParkEventPointer;
199
200 /*
201 * Thread ID
202 */
203 private long tid;
204
205 /* For generating thread ID */
206 private static long threadSeqNumber;
207
208 /* Java thread status for tools,
209 * initialized to indicate thread 'not yet started'
210 */
211
212 private int threadStatus = 0;
213
214
215 private static synchronized long nextThreadID() {
216 return ++threadSeqNumber;
217 }
218
219 /**
220 * The argument supplied to the current call to
221 * java.util.concurrent.locks.LockSupport.park.
222 * Set by (private) java.util.concurrent.locks.LockSupport.setBlocker
223 * Accessed using java.util.concurrent.locks.LockSupport.getBlocker
224 */
225 volatile Object parkBlocker;
226
227 /* The object in which this thread is blocked in an interruptible I/O
228 * operation, if any. The blocker's interrupt method should be invoked
229 * after setting this thread's interrupt status.
230 */
231 private volatile Interruptible blocker;
232 private final Object blockerLock = new Object();
|
192 */
193 private long stackSize;
194
195 /*
196 * JVM-private state that persists after native thread termination.
197 */
198 private long nativeParkEventPointer;
199
200 /*
201 * Thread ID
202 */
203 private long tid;
204
205 /* For generating thread ID */
206 private static long threadSeqNumber;
207
208 /* Java thread status for tools,
209 * initialized to indicate thread 'not yet started'
210 */
211
212 private volatile int threadStatus = 0;
213
214
215 private static synchronized long nextThreadID() {
216 return ++threadSeqNumber;
217 }
218
219 /**
220 * The argument supplied to the current call to
221 * java.util.concurrent.locks.LockSupport.park.
222 * Set by (private) java.util.concurrent.locks.LockSupport.setBlocker
223 * Accessed using java.util.concurrent.locks.LockSupport.getBlocker
224 */
225 volatile Object parkBlocker;
226
227 /* The object in which this thread is blocked in an interruptible I/O
228 * operation, if any. The blocker's interrupt method should be invoked
229 * after setting this thread's interrupt status.
230 */
231 private volatile Interruptible blocker;
232 private final Object blockerLock = new Object();
|