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
> --
> 

Reply via email to