On 03/10/2015 06:32 PM, Roger Riggs wrote:
Can you point me to the alternative Process implementations outside the JDK? I've seen a bit of flak about it not being the right API and if its not right
we should not extend it.

Roger

This will continue to work, since it's just a wrapper around another Process implementation (the JDK provided one):

http://types.cs.washington.edu/plume-lib/api/plume/TimeLimitProcess.html

This one is questionable, because it seems to handle some things of ProcessHandle API on it's own:

http://www.phoenix-int.com/~AnalysisServer/user/com/phoenix_int/aserver/util/PHXProcess.html

Theese seem to be it's own implementations, not just a wrappers:

http://axiak.github.io/java_posix_spawn/net/axiak/runtime/SpawnedProcess.html

http://www.google.si/url?sa=t&rct=j&q=&esrc=s&source=web&cd=7&ved=0CEEQFjAG&url=http%3A%2F%2Fhelp.eclipse.org%2Fluna%2Ftopic%2Forg.eclipse.cdt.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fcdt%2Futils%2Fspawner%2FSpawner.html&ei=_ED_VIKBM-bMygP4hIHwDQ&usg=AFQjCNELKMMuCGAWMSKXCyox1xCpvOZSGA&bvm=bv.87611401,d.bGQ



I don't know. Maybe you're right. There doesn't seem to be many implementations that would benefit from being extended with new functionality. There are a few wrappers of may kinds. If they deal with local processes, they will continue to be compatible with new functionality by just delegating getPid() to wrapped Process.

This one is interesting:

https://github.com/brettwooldridge/NuProcess

It claims to be using just a "few threads" for handling 500 processes on Linux or MacOS X. By reading through the introduction, I can see how it is done. It uses non-blocking I/O on the pipes between spawned process and JVM. So it can wait in single thread on events happening on multiple pipes. When child exits, the pipe gets an event as it reaches EOF. Clever.


Regards, Peter

Reply via email to