[Patch] PR 31228, Fix close-on-exec race.

Andrew Haley aph@redhat.com
Wed Mar 21 17:54:00 GMT 2007


David Daney writes:
 > Tom Tromey wrote:
 > >>>>>> "David" == David Daney <ddaney@avtrex.com> writes:
 > >>>>>>             
 > >
 > > David> Make the accept non-blocking, and do a select/poll on the
 > > David> ServerSocket. That way the accept would never block and you could use
 > > David> a mutex.
 > >
 > > Yeah.  I hadn't thought of the accept case, thanks.
 > >
 > > David> This makes me think that ld.so is probably broken also.  When we do
 > > David> dlopen ld.so opens the library file and does several mmaps before
 > > David> closing the file descriptor.  These could leak out as well.
 > >
 > > Not to mention other places that libc may create fds.
 > >
 > > On some platforms fdwalk(3) can be used to make this close loop more
 > > efficient.  There's also closefrom(3).  Linux doesn't seem to have
 > > either of these, but Solaris does.
 > >
 > > Tom
 > >   
 > How about this version?

This is impressively heroic, but I really think you should measure the
performance improvement before committing this.  :-)

Andrew.



More information about the Java-patches mailing list