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
@ -1,3 +1,24 @@
|
|||||||
|
2007-02-16 David Daney <ddaney@avtrex.com>
|
||||||
|
|
||||||
|
* 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.
|
||||||
|
|
||||||
2007-02-16 Kyle Galloway <kgallowa@redhat.com>
|
2007-02-16 Kyle Galloway <kgallowa@redhat.com>
|
||||||
|
|
||||||
* interpret.cc: Add extra DEBUG_LOCALS_INSN calls for multi-slot
|
* interpret.cc: Add extra DEBUG_LOCALS_INSN calls for multi-slot
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -42,7 +42,12 @@ final class PosixProcess extends Process
|
|||||||
|
|
||||||
ProcessManager()
|
ProcessManager()
|
||||||
{
|
{
|
||||||
super("ProcessManager");
|
// Use package private Thread constructor to place us in the
|
||||||
|
// root ThreadGroup with no InheritableThreadLocal. If the
|
||||||
|
// InheritableThreadLocals were allowed to initialize, they could
|
||||||
|
// cause a Runtime.exec() to be called causing infinite
|
||||||
|
// recursion.
|
||||||
|
super("ProcessManager", true);
|
||||||
// Don't keep the (main) process from exiting on our account.
|
// Don't keep the (main) process from exiting on our account.
|
||||||
this.setDaemon(true);
|
this.setDaemon(true);
|
||||||
}
|
}
|
||||||
|
@ -53,8 +53,10 @@ public:
|
|||||||
Thread(::java::lang::Runnable *, ::java::lang::String *);
|
Thread(::java::lang::Runnable *, ::java::lang::String *);
|
||||||
Thread(::java::lang::ThreadGroup *, ::java::lang::Runnable *, ::java::lang::String *);
|
Thread(::java::lang::ThreadGroup *, ::java::lang::Runnable *, ::java::lang::String *);
|
||||||
Thread(::java::lang::ThreadGroup *, ::java::lang::Runnable *, ::java::lang::String *, jlong);
|
Thread(::java::lang::ThreadGroup *, ::java::lang::Runnable *, ::java::lang::String *, jlong);
|
||||||
|
public: // actually package-private
|
||||||
|
Thread(::java::lang::String *, jboolean);
|
||||||
private:
|
private:
|
||||||
Thread(::java::lang::Thread *, ::java::lang::ThreadGroup *, ::java::lang::Runnable *, ::java::lang::String *);
|
Thread(::java::lang::Thread *, ::java::lang::ThreadGroup *, ::java::lang::Runnable *, ::java::lang::String *, jboolean);
|
||||||
public:
|
public:
|
||||||
static jint activeCount();
|
static jint activeCount();
|
||||||
virtual void checkAccess();
|
virtual void checkAccess();
|
||||||
|
@ -355,7 +355,7 @@ public class Thread implements Runnable
|
|||||||
*/
|
*/
|
||||||
public Thread(ThreadGroup group, Runnable target, String name)
|
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)
|
public Thread(ThreadGroup group, Runnable target, String name, long size)
|
||||||
{
|
{
|
||||||
// Just ignore stackSize for now.
|
// 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.
|
// Make sure the current thread may create a new thread.
|
||||||
checkAccess();
|
checkAccess();
|
||||||
@ -424,7 +440,10 @@ public class Thread implements Runnable
|
|||||||
int pri = current.getPriority();
|
int pri = current.getPriority();
|
||||||
priority = (gmax < pri ? gmax : pri);
|
priority = (gmax < pri ? gmax : pri);
|
||||||
contextClassLoader = current.contextClassLoader;
|
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
|
else
|
||||||
{
|
{
|
||||||
|
@ -490,7 +490,7 @@ _Jv_AttachCurrentThread(jstring name, java::lang::ThreadGroup* group)
|
|||||||
return thread;
|
return thread;
|
||||||
if (name == NULL)
|
if (name == NULL)
|
||||||
name = java::lang::Thread::gen_name ();
|
name = java::lang::Thread::gen_name ();
|
||||||
thread = new java::lang::Thread (NULL, group, NULL, name);
|
thread = new java::lang::Thread (NULL, group, NULL, name, false);
|
||||||
_Jv_AttachCurrentThread (thread);
|
_Jv_AttachCurrentThread (thread);
|
||||||
_Jv_NotifyThreadStart (thread);
|
_Jv_NotifyThreadStart (thread);
|
||||||
return thread;
|
return thread;
|
||||||
@ -504,7 +504,7 @@ _Jv_AttachCurrentThreadAsDaemon(jstring name, java::lang::ThreadGroup* group)
|
|||||||
return thread;
|
return thread;
|
||||||
if (name == NULL)
|
if (name == NULL)
|
||||||
name = java::lang::Thread::gen_name ();
|
name = java::lang::Thread::gen_name ();
|
||||||
thread = new java::lang::Thread (NULL, group, NULL, name);
|
thread = new java::lang::Thread (NULL, group, NULL, name, false);
|
||||||
thread->setDaemon (true);
|
thread->setDaemon (true);
|
||||||
_Jv_AttachCurrentThread (thread);
|
_Jv_AttachCurrentThread (thread);
|
||||||
_Jv_NotifyThreadStart (thread);
|
_Jv_NotifyThreadStart (thread);
|
||||||
|
Loading…
Reference in New Issue
Block a user