v.io/x/jni: support java num_cpu option

Change-Id: I6c90e9c8e27eed63368eea597c2262b3a2a36e4e
diff --git a/impl/google/rpc/dispatcher.go b/impl/google/rpc/dispatcher.go
index 913fdf8..b2130ff 100644
--- a/impl/google/rpc/dispatcher.go
+++ b/impl/google/rpc/dispatcher.go
@@ -47,8 +47,7 @@
 
 	// Call Java dispatcher's lookup() method.
 	serviceObjectWithAuthorizerSign := jutil.ClassSign("io.v.v23.rpc.ServiceObjectWithAuthorizer")
-	tempJObj, err := jutil.CallObjectMethod(env, d.jDispatcher, "lookup", []jutil.Sign{jutil.StringSign}, serviceObjectWithAuthorizerSign, suffix)
-	jObj := C.jobject(tempJObj)
+	jObj, err := jutil.CallObjectMethod(env, d.jDispatcher, "lookup", []jutil.Sign{jutil.StringSign}, serviceObjectWithAuthorizerSign, suffix)
 	if err != nil {
 		return nil, nil, fmt.Errorf("error invoking Java dispatcher's lookup() method: %v", err)
 	}
diff --git a/impl/google/rt/jni.go b/impl/google/rt/jni.go
index adb37a4..61a61b3 100644
--- a/impl/google/rt/jni.go
+++ b/impl/google/rt/jni.go
@@ -7,14 +7,16 @@
 package rt
 
 import (
+	"runtime"
+
+	"v.io/v23"
+	_ "v.io/x/ref/profiles/roaming"
+
 	jns "v.io/x/jni/impl/google/namespace"
 	jrpc "v.io/x/jni/impl/google/rpc"
 	jutil "v.io/x/jni/util"
 	jcontext "v.io/x/jni/v23/context"
 	jsecurity "v.io/x/jni/v23/security"
-
-	"v.io/v23"
-	_ "v.io/x/ref/profiles/roaming"
 )
 
 // #include "jni.h"
@@ -31,7 +33,8 @@
 }
 
 //export Java_io_v_impl_google_rt_VRuntime_nativeInit
-func Java_io_v_impl_google_rt_VRuntime_nativeInit(env *C.JNIEnv, jRuntime C.jclass) C.jobject {
+func Java_io_v_impl_google_rt_VRuntime_nativeInit(env *C.JNIEnv, jRuntime C.jclass, jNumCpus C.jint) C.jobject {
+	runtime.GOMAXPROCS(int(jNumCpus))
 	ctx, _ := v23.Init()
 	jCtx, err := jcontext.JavaContext(env, ctx, nil)
 	if err != nil {