Thread.java (Thread(ThreadGroup, Runnable, String)): Pass new parameter constructor.
* java/lang/Thread.java (Thread(ThreadGroup, Runnable, String)): Pass new parameter constructor. (Thread(ThreadGroup, Runnable, String, long)): Same. (Thread(String, boolean)): New constructor. (Thread(Thread, ThreadGroup, Runnable, String): Add parameter noInheritableThreadLocal, don't call InheritableThreadLocal.newChildThread if set. * java/lang/PosixProcess.java(ProcessManager()): Set noInheritableThreadLocal in super. * java/lang/natThread.cc (_Jv_AttachCurrentThread): Pass new parameter to Thread constructor. (_Jv_AttachCurrentThreadAsDaemon): Same. * java/lang/Thread.h: Regenerate. * classpath/lib/java/lang/Thread.class: Same. * classpath/lib/java/lang/PosixProcess$EOFInputStream.class: Same. * classpath/lib/java/lang/PosixProcess.class: Same. * classpath/lib/java/lang/Thread$State.class: Same. * classpath/lib/java/lang/PosixProcess$ProcessManager.class: Same. From-SVN: r122054
This commit is contained in:
parent
d16c4b1a16
commit
599b39ce9d
10 changed files with 55 additions and 8 deletions
|
@ -355,7 +355,7 @@ public class Thread implements Runnable
|
|||
*/
|
||||
public Thread(ThreadGroup group, Runnable target, String name)
|
||||
{
|
||||
this(currentThread(), group, target, name);
|
||||
this(currentThread(), group, target, name, false);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -381,10 +381,26 @@ public class Thread implements Runnable
|
|||
public Thread(ThreadGroup group, Runnable target, String name, long size)
|
||||
{
|
||||
// Just ignore stackSize for now.
|
||||
this(currentThread(), group, target, name);
|
||||
this(currentThread(), group, target, name, false);
|
||||
}
|
||||
|
||||
private Thread (Thread current, ThreadGroup g, Runnable r, String n)
|
||||
/**
|
||||
* Allocate a new Thread object for threads used internally to the
|
||||
* run time. Runtime threads should not be members of an
|
||||
* application ThreadGroup, nor should they execute arbitrary user
|
||||
* code as part of the InheritableThreadLocal protocol.
|
||||
*
|
||||
* @param name the name for the Thread
|
||||
* @param noInheritableThreadLocal if true, do not initialize
|
||||
* InheritableThreadLocal variables for this thread.
|
||||
* @throws IllegalThreadStateException if group is destroyed
|
||||
*/
|
||||
Thread(String name, boolean noInheritableThreadLocal)
|
||||
{
|
||||
this(null, null, null, name, noInheritableThreadLocal);
|
||||
}
|
||||
|
||||
private Thread (Thread current, ThreadGroup g, Runnable r, String n, boolean noInheritableThreadLocal)
|
||||
{
|
||||
// Make sure the current thread may create a new thread.
|
||||
checkAccess();
|
||||
|
@ -424,7 +440,10 @@ public class Thread implements Runnable
|
|||
int pri = current.getPriority();
|
||||
priority = (gmax < pri ? gmax : pri);
|
||||
contextClassLoader = current.contextClassLoader;
|
||||
InheritableThreadLocal.newChildThread(this);
|
||||
// InheritableThreadLocal allows arbitrary user code to be
|
||||
// executed, only do this if our caller desires it.
|
||||
if (!noInheritableThreadLocal)
|
||||
InheritableThreadLocal.newChildThread(this);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue