You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by mt...@apache.org on 2013/03/26 13:05:46 UTC
svn commit: r1461070 - in /commons/proper/daemon/branches/1.0.x:
RELEASE-NOTES.txt src/native/windows/apps/prunsrv/prunsrv.c
Author: mturk
Date: Tue Mar 26 12:05:46 2013
New Revision: 1461070
URL: http://svn.apache.org/r1461070
Log:
DAEMON-288: Apply patch provided by Mike Miller
Modified:
commons/proper/daemon/branches/1.0.x/RELEASE-NOTES.txt
commons/proper/daemon/branches/1.0.x/src/native/windows/apps/prunsrv/prunsrv.c
Modified: commons/proper/daemon/branches/1.0.x/RELEASE-NOTES.txt
URL: http://svn.apache.org/viewvc/commons/proper/daemon/branches/1.0.x/RELEASE-NOTES.txt?rev=1461070&r1=1461069&r2=1461070&view=diff
==============================================================================
--- commons/proper/daemon/branches/1.0.x/RELEASE-NOTES.txt (original)
+++ commons/proper/daemon/branches/1.0.x/RELEASE-NOTES.txt Tue Mar 26 12:05:46 2013
@@ -84,7 +84,7 @@ NEW FEATURES:
BUG FIXES:
-1.0.15:
+1.0.15: DAEMON-288
1.0.14: DAEMON-278, DAEMON-280, DAEMON-281, DAEMON-283, DAEMON-284, DAEMON-286,
DAEMON-287
Modified: commons/proper/daemon/branches/1.0.x/src/native/windows/apps/prunsrv/prunsrv.c
URL: http://svn.apache.org/viewvc/commons/proper/daemon/branches/1.0.x/src/native/windows/apps/prunsrv/prunsrv.c?rev=1461070&r1=1461069&r2=1461070&view=diff
==============================================================================
--- commons/proper/daemon/branches/1.0.x/src/native/windows/apps/prunsrv/prunsrv.c (original)
+++ commons/proper/daemon/branches/1.0.x/src/native/windows/apps/prunsrv/prunsrv.c Tue Mar 26 12:05:46 2013
@@ -1076,7 +1076,6 @@ cleanup:
CloseHandle(gSignalThread);
gSignalEvent = NULL;
}
- SetEvent(gShutdownEvent);
if (timeout > 0x7FFFFFFF)
timeout = INFINITE; /* If the timeout was '-1' wait forewer */
if (wait_to_die && !timeout)
@@ -1112,8 +1111,8 @@ cleanup:
apxHandleSendMessage(gWorker, WM_CLOSE, 0, 0);
}
- apxLogWrite(APXLOG_MARK_INFO "Service stopped.");
- reportServiceStatusStopped(0);
+ apxLogWrite(APXLOG_MARK_INFO "Service stop thread completed.");
+ SetEvent(gShutdownEvent);
return rv;
}
@@ -1538,15 +1537,18 @@ void WINAPI serviceMain(DWORD argc, LPTS
goto cleanup;
}
if (gShutdownEvent) {
- reportServiceStatus(SERVICE_STOP_PENDING, NO_ERROR, 0);
+
/* Ensure that shutdown thread exits before us */
apxLogWrite(APXLOG_MARK_DEBUG "Waiting for ShutdownEvent");
+ reportServiceStatus(SERVICE_STOP_PENDING, NO_ERROR, ONE_MINUTE);
WaitForSingleObject(gShutdownEvent, ONE_MINUTE);
apxLogWrite(APXLOG_MARK_DEBUG "ShutdownEvent signaled");
CloseHandle(gShutdownEvent);
+
/* This will cause to wait for all threads to exit
*/
apxLogWrite(APXLOG_MARK_DEBUG "Waiting 1 minute for all threads to exit");
+ reportServiceStatus(SERVICE_STOP_PENDING, NO_ERROR, ONE_MINUTE);
apxDestroyJvm(ONE_MINUTE);
}
else {