I don't think anyone would object for the changes, except for one big caveat: a lot of us would like that binary file to be backwards compatible; a Hadoop 2.6 JAR should be able to link to the 2.8+ libhadoop. So whatever gets changed, the old methods are still going to hang around
> On 2 Oct 2015, at 17:46, Alan Burlison <alan.burli...@oracle.com> wrote: > > On 30/09/2015 09:14, Alan Burlison wrote: > >> The basic idea is to add two new fields to DomainSocket.c to hold the >> read/write timeouts. On platforms that support SO_SNDTIMEO and >> SO_RCVTIMEO these would be unused as setsockopt() would be used to set >> the socket timeouts. On platforms such as Solaris the JNI code would use >> the values to implement the timeouts appropriately. > > Unfortunately it's not a simple as I'd hoped. For some reason I don't really > understand, nearly all the JNI methods are declared as static and therefore > don't get a "this" pointer and as a consequence all the class data members > that are needed by the JNI code have to be passed in as parameters. That also > means it's not possible to store the timeouts in the DomainSocket fields from > within the JNI code. Most of the JNI methods should be instance methods > rather than static ones, but making that change would require some > significant surgery to DomainSocket. > > -- > Alan Burlison > -- >