re PR libgcj/29324 (add wait handling hook)
PR libgcj/29324 * include/posix-threads.h (_Jv_BlockSigchld): Declare. (_Jv_UnBlockSigchld): Same. * posix-threads.cc: Include posix-threads.h. (block_sigchld) Rename to... (_Jv_BlockSigchld) ... this. (_Jv_UnBlockSigchld): New function. (_Jv_InitThreads): Call _Jv_BlockSigchld in place of block_sigchld. (_Jv_ThreadStart): Same. * java/lang/PosixProcess$ProcessManager.h: Regenerate. * java/lang/PosixProcess.java: Clean up imports. (ProcessManager): Make final. (ProcessManager.queue): Genericise and make private. (ProcessManager.pidToProcess): Remove. (ProcessManager.liveProcesses): New field. (ProcessManager.reaperPID): Remove. (ProcessManager.nativeData): New field. (ProcessManager.removeProcessFromMap): Remove. (ProcessManager.addProcessToMap):Remove. (ProcessManager.addToLiveProcesses): New method. (ProcessManager.run): Rewritten. (ProcessManager.reap): Change method signature, (getErrorStream): Correct formatting. (getInputStream): Same. (spawn): Add process to liveProcesses list. (pid): Make package private. * java/lang/PosixProcess.h: Regenerate. * java/lang/natPosixProcess.cc: Include posix.h and posix-threads.h. Add useing namespace java::lang. (ProcessManagerInternal): New struct. (sigchld_handler): Rewritten. (init): Rewritten. (waitForSignal): Same. (reap): Same. (signalReaper): Same. (nativeDestroy): Call kill as ::kill. (nativeSpawn): Correct formatting. * classpath/lib/java/lang/PosixProcess$EOFInputStream.class: Regenerate. * classpath/lib/java/lang/PosixProcess.class: Same. * classpath/lib/java/lang/PosixProcess$ProcessManager.class: Same. From-SVN: r124638
This commit is contained in:
parent
c4160806e1
commit
8c0dbf3490
10 changed files with 244 additions and 168 deletions
|
@ -32,17 +32,16 @@ private:
|
|||
void nativeSpawn();
|
||||
public: // actually package-private
|
||||
PosixProcess(JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, ::java::io::File *, jboolean);
|
||||
static jlong access$0(::java::lang::PosixProcess *);
|
||||
static ::java::lang::Object * access$1();
|
||||
static void access$2(::java::lang::PosixProcess$ProcessManager *);
|
||||
static ::java::lang::Object * access$0();
|
||||
static void access$1(::java::lang::PosixProcess$ProcessManager *);
|
||||
private:
|
||||
JArray< ::java::lang::String * > * __attribute__((aligned(__alignof__( ::java::lang::Process)))) progarray;
|
||||
JArray< ::java::lang::String * > * envp;
|
||||
::java::io::File * dir;
|
||||
jboolean redirect;
|
||||
::java::lang::Throwable * exception;
|
||||
jlong pid;
|
||||
public: // actually package-private
|
||||
jlong pid;
|
||||
static const jint STATE_WAITING_TO_START = 0;
|
||||
static const jint STATE_RUNNING = 1;
|
||||
static const jint STATE_TERMINATED = 2;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue