UNIXProcess improvements

Martin Buchholz martinrb at google.com
Mon Apr 19 20:06:31 UTC 2010

On Mon, Apr 19, 2010 at 09:04, Michael McMahon <Michael.McMahon at sun.com> wrote:
> Martin Buchholz wrote:
>> On Fri, Apr 16, 2010 at 09:18, Mark Reinhold <mr at sun.com> wrote:
>>> For now I suggest leaving old @author tags as-is.
>> OK, done.
>> Version 0.2 of the webrev is published.
>> Martin
> Martin,
> From what I can see, you've cleaned up the code and the functional changes
> are the use of a thread pool, and an explicit (8 k sized) stack.

Exceptions thrown in the "process reaper" thread,
which were not IOExceptions,
were not being caught, and would cause the user thread to hang.

> Also, the threads created now belong to the root thread group rather than
> the application's thread group.

Well, they have to belong to some thread group,
and they get reused, so in general the thread group will have
no relation to the thread group of the user thread,
so may as well use the root thread group.
I stole this technique from elsewhere in the JDK.

> Is this so you can handle uncaught
> exceptions
> as you mentioned before, and if so, I guess some other change is coming to
> complete
> this work. Is that right?

Yes.  This change by itself is a clear win,
except that because it is more memory efficient,
GC is less likely to get called,
which means file descriptors of defunct processes
are less likely to get cleaned up in the face of
lazy user code, which means it is more subject
to file descriptor exhaustion problems.
Which I would like to fix.


> Thanks,
> Michael

More information about the core-libs-dev mailing list