Author: mturk
Date: Fri Sep 24 13:34:33 2010
New Revision: 1000866

URL: http://svn.apache.org/viewvc?rev=1000866&view=rev
Log:
Use the same API for shutdown and remove the extra shutdown function

Modified:
    commons/proper/daemon/trunk/src/native/windows/apps/prunsrv/prunsrv.c
    commons/proper/daemon/trunk/src/native/windows/include/javajni.h
    commons/proper/daemon/trunk/src/native/windows/src/javajni.c

Modified: commons/proper/daemon/trunk/src/native/windows/apps/prunsrv/prunsrv.c
URL: 
http://svn.apache.org/viewvc/commons/proper/daemon/trunk/src/native/windows/apps/prunsrv/prunsrv.c?rev=1000866&r1=1000865&r2=1000866&view=diff
==============================================================================
--- commons/proper/daemon/trunk/src/native/windows/apps/prunsrv/prunsrv.c 
(original)
+++ commons/proper/daemon/trunk/src/native/windows/apps/prunsrv/prunsrv.c Fri 
Sep 24 13:34:33 2010
@@ -232,6 +232,7 @@ static HANDLE gPidfileHandle = NULL;
 static LPWSTR gPidfileName   = NULL;
 static BOOL   gSignalValid   = TRUE;
 static APXJAVA_THREADARGS gRargs;
+static APXJAVA_THREADARGS gSargs;
 
 
 DWORD WINAPI eventThread(LPVOID lpParam)
@@ -817,21 +818,22 @@ static DWORD WINAPI serviceStop(LPVOID l
             apxLogWrite(APXLOG_MARK_ERROR "Failed creating java %S", 
_jni_jvmpath);
             return 1;
         }
-        if (!apxJavaInitialize(hWorker, _jni_classpath, _jni_jvmoptions,
-                               SO_JVMMS, SO_JVMMX, SO_JVMSS, SO_JNIVFPRINTF)) {
-            rv = 2;
-            apxLogWrite(APXLOG_MARK_ERROR "Failed initializing java %s", 
_jni_classpath);
-            goto cleanup;
-        }
-        if (!apxJavaLoadMainClass(hWorker, _jni_sclass, _jni_smethod, 
_jni_sparam)) {
-            rv = 2;
-            apxLogWrite(APXLOG_MARK_ERROR "Failed loading main %s class %s",
-                        _jni_rclass, _jni_classpath);
-            goto cleanup;
-        }
+        gSargs.hJava            = hWorker;
+        gSargs.szClassPath      = _jni_classpath;
+        gSargs.lpOptions        = _jni_jvmoptions;
+        gSargs.dwMs             = SO_JVMMS;
+        gSargs.dwMx             = SO_JVMMX;
+        gSargs.dwSs             = SO_JVMSS;
+        gSargs.bJniVfprintf     = SO_JNIVFPRINTF;        
+        gSargs.szClassName      = _jni_sclass;
+        gSargs.szMethodName     = _jni_smethod;
+        gSargs.lpArguments      = _jni_sparam;
+        gSargs.szStdErrFilename = NULL;
+        gSargs.szStdOutFilename = NULL;
+        
         /* Create sutdown event */
         gShutdownEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
-        if (!apxJavaStart(hWorker)) {
+        if (!apxJavaStart(&gSargs)) {
             apxLogWrite(APXLOG_MARK_ERROR "Failed starting java");
             rv = 3;
         }
@@ -1006,7 +1008,7 @@ static DWORD serviceStart()
         gRargs.szStdErrFilename = gStdwrap.szStdErrFilename;
         gRargs.szStdOutFilename = gStdwrap.szStdOutFilename;
 
-        if (!apxJavaStartThread(&gRargs)) {
+        if (!apxJavaStart(&gRargs)) {
             rv = 4;
             apxLogWrite(APXLOG_MARK_ERROR "Failed to start Java");
             goto cleanup;

Modified: commons/proper/daemon/trunk/src/native/windows/include/javajni.h
URL: 
http://svn.apache.org/viewvc/commons/proper/daemon/trunk/src/native/windows/include/javajni.h?rev=1000866&r1=1000865&r2=1000866&view=diff
==============================================================================
--- commons/proper/daemon/trunk/src/native/windows/include/javajni.h (original)
+++ commons/proper/daemon/trunk/src/native/windows/include/javajni.h Fri Sep 24 
13:34:33 2010
@@ -52,8 +52,7 @@ BOOL        apxJavaLoadMainClass(APXHAND
                                  LPCSTR szMethodName,
                                  LPCVOID lpArguments);
 
-BOOL        apxJavaStart(APXHANDLE hJava);
-BOOL        apxJavaStartThread(LPAPXJAVA_THREADARGS pArgs);
+BOOL        apxJavaStart(LPAPXJAVA_THREADARGS pArgs);
 
 DWORD       apxJavaWait(APXHANDLE hJava, DWORD dwMilliseconds, BOOL bKill);
 

Modified: commons/proper/daemon/trunk/src/native/windows/src/javajni.c
URL: 
http://svn.apache.org/viewvc/commons/proper/daemon/trunk/src/native/windows/src/javajni.c?rev=1000866&r1=1000865&r2=1000866&view=diff
==============================================================================
--- commons/proper/daemon/trunk/src/native/windows/src/javajni.c (original)
+++ commons/proper/daemon/trunk/src/native/windows/src/javajni.c Fri Sep 24 
13:34:33 2010
@@ -841,42 +841,6 @@ static DWORD WINAPI __apxJavaWorkerThrea
 #define WORKER_EXIT(x)  { rv = x; goto finished; }
     DWORD rv = 0;
     LPAPXJAVAVM lpJava;
-    APXHANDLE   hJava = (APXHANDLE)lpParameter;
-    /* This shouldn't happen */
-    if (hJava->dwType != APXHANDLE_TYPE_JVM)
-        WORKER_EXIT(0);
-    lpJava = APXHANDLE_DATA(hJava);
-    /* Check if we have a class and a method */
-    if (!lpJava->clWorker.jClazz || !lpJava->clWorker.jMethod)
-        WORKER_EXIT(2);
-    if (!__apxJvmAttach(lpJava))
-        WORKER_EXIT(3);
-    apxLogWrite(APXLOG_MARK_DEBUG "Java Worker thread started %s:%s",
-                lpJava->clWorker.sClazz, lpJava->clWorker.sMethod);
-    lpJava->dwWorkerStatus = 1;
-    JNICALL_3(CallStaticVoidMethod,
-              lpJava->clWorker.jClazz,
-              lpJava->clWorker.jMethod,
-              lpJava->clWorker.jArgs);
-
-    JVM_EXCEPTION_CLEAR(lpJava);
-    __apxJvmDetach(lpJava);
-    apxLogWrite(APXLOG_MARK_DEBUG "Java Worker thread %s:%s finished",
-                lpJava->clWorker.sClazz, lpJava->clWorker.sMethod);
-finished:
-    lpJava->dwWorkerStatus = 0;
-    apxLogWrite(APXLOG_MARK_DEBUG "Java Worker thread finished %s:%s",
-                lpJava->clWorker.sClazz, lpJava->clWorker.sMethod);
-    ExitThread(rv);
-    /* never gets here but keep the compiler happy */
-    return 0;
-}
-
-static DWORD WINAPI __apxJavaWorkerThread2(LPVOID lpParameter)
-{
-#define WORKER_EXIT(x)  { rv = x; goto finished; }
-    DWORD rv = 0;
-    LPAPXJAVAVM lpJava;
     LPAPXJAVA_THREADARGS pArgs = (LPAPXJAVA_THREADARGS)lpParameter;
     APXHANDLE hJava;
     
@@ -928,40 +892,14 @@ finished:
     return 0;
 }
 
-
-BOOL
-apxJavaStart(APXHANDLE hJava)
-{
-
-    LPAPXJAVAVM lpJava;
-
-    if (hJava->dwType != APXHANDLE_TYPE_JVM)
-        return FALSE;
-    lpJava = APXHANDLE_DATA(hJava);
-
-    lpJava->hWorkerThread = CreateThread(NULL,
-                                         lpJava->szStackSize,
-                                         __apxJavaWorkerThread,
-                                         hJava, CREATE_SUSPENDED,
-                                         &lpJava->iWorkerThread);
-    if (IS_INVALID_HANDLE(lpJava->hWorkerThread)) {
-        apxLogWrite(APXLOG_MARK_SYSERR);
-        return FALSE;
-    }
-    ResumeThread(lpJava->hWorkerThread);
-    /* Give some time to initialize the thread */
-    Sleep(1000);
-    return TRUE;
-}
-
-apxJavaStartThread(LPAPXJAVA_THREADARGS pArgs)
+apxJavaStart(LPAPXJAVA_THREADARGS pArgs)
 {
 
     LPAPXJAVAVM lpJava;
     lpJava = APXHANDLE_DATA(pArgs->hJava);
     lpJava->hWorkerThread = CreateThread(NULL,
                                          lpJava->szStackSize,
-                                         __apxJavaWorkerThread2,
+                                         __apxJavaWorkerThread,
                                          pArgs, CREATE_SUSPENDED,
                                          &lpJava->iWorkerThread);
     if (IS_INVALID_HANDLE(lpJava->hWorkerThread)) {


Reply via email to