diff options
author | David Daney <ddaney@avtrex.com> | 2007-05-12 17:37:55 +0000 |
---|---|---|
committer | David Daney <daney@gcc.gnu.org> | 2007-05-12 17:37:55 +0000 |
commit | 8c0dbf3490bd297d601118bc95a2a8640aa73a39 (patch) | |
tree | c786d0bbe368ad9664be7de23b5d9d5b106c0f34 /libjava/java/lang/PosixProcess$ProcessManager.h | |
parent | c4160806e1a116b18498c97b969cc45e453104ce (diff) | |
download | gcc-8c0dbf3490bd297d601118bc95a2a8640aa73a39.zip gcc-8c0dbf3490bd297d601118bc95a2a8640aa73a39.tar.gz gcc-8c0dbf3490bd297d601118bc95a2a8640aa73a39.tar.bz2 |
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
Diffstat (limited to 'libjava/java/lang/PosixProcess$ProcessManager.h')
-rw-r--r-- | libjava/java/lang/PosixProcess$ProcessManager.h | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/libjava/java/lang/PosixProcess$ProcessManager.h b/libjava/java/lang/PosixProcess$ProcessManager.h index d8d0d59..4b3b62e 100644 --- a/libjava/java/lang/PosixProcess$ProcessManager.h +++ b/libjava/java/lang/PosixProcess$ProcessManager.h @@ -7,31 +7,37 @@ #pragma interface #include <java/lang/Thread.h> +extern "Java" +{ + namespace gnu + { + namespace gcj + { + class RawDataManaged; + } + } +} class java::lang::PosixProcess$ProcessManager : public ::java::lang::Thread { public: // actually package-private PosixProcess$ProcessManager(); -private: - ::java::lang::PosixProcess * removeProcessFromMap(jlong); -public: // actually package-private - virtual void addProcessToMap(::java::lang::PosixProcess *); - virtual void startExecuting(::java::lang::PosixProcess *); - virtual void waitUntilReady(); + void addToLiveProcesses(::java::lang::PosixProcess *); + void startExecuting(::java::lang::PosixProcess *); + void waitUntilReady(); public: - virtual void run(); + void run(); private: void init(); void waitForSignal(); - jboolean reap(); + jboolean reap(::java::lang::PosixProcess *); void signalReaper(); -public: // actually package-private - ::java::util::List * __attribute__((aligned(__alignof__( ::java::lang::Thread)))) queue; -private: - ::java::util::Map * pidToProcess; + ::java::util::LinkedList * __attribute__((aligned(__alignof__( ::java::lang::Thread)))) queue; + ::java::util::LinkedList * liveProcesses; jboolean ready; - jlong reaperPID; +public: // actually package-private + static ::gnu::gcj::RawDataManaged * nativeData; public: static ::java::lang::Class class$; }; |