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