Author: ekohl
Date: Sun Jul 8 23:08:19 2012
New Revision: 56861
URL: http://svn.reactos.org/svn/reactos?rev=56861&view=rev
Log:
[SERVICES]
Correct comments and code error introduced in rev 56844.
Patch by Hermes Belusca.
I used a helper variable to determine whether or not ScmDeleteNamedPipeCriticalSection must be called. Changing the order in which functions are called could cause a deadlock.
See issue #7172 for more details.
Modified:
trunk/reactos/base/system/services/lock.c
trunk/reactos/base/system/services/rpcserver.c
trunk/reactos/base/system/services/services.c
Modified: trunk/reactos/base/system/services/lock.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/system/services/lock.…
==============================================================================
--- trunk/reactos/base/system/services/lock.c [iso-8859-1] (original)
+++ trunk/reactos/base/system/services/lock.c [iso-8859-1] Sun Jul 8 23:08:19 2012
@@ -22,9 +22,9 @@
/* FUNCTIONS *****************************************************************/
/*
- * TRUE if locked by the Service Control Manager, FALSE otherwise
+ * NOTE: IsServiceController is TRUE if locked by the
+ * Service Control Manager, and FALSE otherwise.
*/
-
DWORD
ScmAcquireServiceStartLock(IN BOOL IsServiceController,
OUT LPSC_RPC_LOCK lpLock)
@@ -146,7 +146,7 @@
lpLockStatus->dwLockDuration = 0;
}
- /* Unlock the whole SC manager */
+ /* Unlock the service database */
ScmUnlockDatabase();
return;
@@ -178,7 +178,7 @@
lpLockStatus->dwLockDuration = 0;
}
- /* Unlock the whole SC manager */
+ /* Unlock the service database */
ScmUnlockDatabase();
return;
Modified: trunk/reactos/base/system/services/rpcserver.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/system/services/rpcse…
==============================================================================
--- trunk/reactos/base/system/services/rpcserver.c [iso-8859-1] (original)
+++ trunk/reactos/base/system/services/rpcserver.c [iso-8859-1] Sun Jul 8 23:08:19 2012
@@ -2877,7 +2877,7 @@
return ERROR_ACCESS_DENIED;
}
- /* HACK: we need to compute instead the real length of the owner name */
+ /* FIXME: we need to compute instead the real length of the owner name */
dwRequiredSize = sizeof(QUERY_SERVICE_LOCK_STATUSW) + sizeof(WCHAR);
*pcbBytesNeeded = dwRequiredSize;
@@ -4243,16 +4243,13 @@
}
}
- /* Start the service */
- dwError = ScmStartService(lpService, argc, lpVector);
-
/* Acquire the service start lock until the service has been started */
dwError = ScmAcquireServiceStartLock(TRUE, &Lock);
if (dwError != ERROR_SUCCESS)
goto done;
- /* Start the service */
- dwError = ScmStartService(lpService, argc, lpVector);
+ /* Start the service */
+ dwError = ScmStartService(lpService, argc, lpVector);
/* Release the service start lock */
ScmReleaseServiceStartLock(&Lock);
Modified: trunk/reactos/base/system/services/services.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/system/services/servi…
==============================================================================
--- trunk/reactos/base/system/services/services.c [iso-8859-1] (original)
+++ trunk/reactos/base/system/services/services.c [iso-8859-1] Sun Jul 8 23:08:19 2012
@@ -378,6 +378,7 @@
{
HANDLE hScmStartEvent = NULL;
SC_RPC_LOCK Lock = NULL;
+ BOOL bDeleteCriticalSection = FALSE;
DWORD dwError;
DPRINT("SERVICES: Service Control Manager\n");
@@ -442,6 +443,7 @@
AcquireLoadDriverPrivilege();
ScmInitNamedPipeCriticalSection();
+ bDeleteCriticalSection = TRUE;
/* Acquire the service start lock until autostart services have been started */
dwError = ScmAcquireServiceStartLock(TRUE, &Lock);
@@ -465,7 +467,8 @@
WaitForSingleObject(hScmShutdownEvent, INFINITE);
done:
- ScmDeleteNamedPipeCriticalSection();
+ if (bDeleteCriticalSection == TRUE)
+ ScmDeleteNamedPipeCriticalSection();
/* Close the shutdown event */
if (hScmShutdownEvent != NULL)
Author: tkreuzer
Date: Sun Jul 8 19:59:33 2012
New Revision: 56859
URL: http://svn.reactos.org/svn/reactos?rev=56859&view=rev
Log:
[CMAKE]
Globally disable SSE when compiling with VS 11 or newer.
See issue #7174 for more details.
Modified:
trunk/reactos/boot/freeldr/freeldr/CMakeLists.txt
trunk/reactos/cmake/msvc.cmake
Modified: trunk/reactos/boot/freeldr/freeldr/CMakeLists.txt
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/CMake…
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/CMakeLists.txt [iso-8859-1] Sun Jul 8 19:59:33 2012
@@ -31,11 +31,6 @@
add_definitions(-D_ZOOM2_)
endif()
endif()
-
-# for VS 2012 we need to explicitly disable SSE
-if (MSVC_VERSION GREATER 1699 AND ARCH MATCHES i386)
- add_definitions(/arch:IA32)
-endif ()
list(APPEND FREELDR_COMMON_SOURCE
cmdline.c
Modified: trunk/reactos/cmake/msvc.cmake
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/cmake/msvc.cmake?rev=56859…
==============================================================================
--- trunk/reactos/cmake/msvc.cmake [iso-8859-1] (original)
+++ trunk/reactos/cmake/msvc.cmake [iso-8859-1] Sun Jul 8 19:59:33 2012
@@ -20,6 +20,12 @@
add_definitions(/Dinline=__inline /D__STDC__=1)
add_compile_flags("/X /GR- /GS- /Zl /W3")
+
+# HACK: for VS 11+ we need to explicitly disable SSE, which is off by
+# default for older compilers. See bug #7174
+if (MSVC_VERSION GREATER 1699 AND ARCH MATCHES i386)
+ add_compile_flags("/arch:IA32")
+endif ()
# C4700 is almost always likely to result in broken code, so mark it as an error
add_compile_flags("/we4700")
Author: tkreuzer
Date: Sun Jul 8 16:16:53 2012
New Revision: 56855
URL: http://svn.reactos.org/svn/reactos?rev=56855&view=rev
Log:
[CMD]
Fix typos
Modified:
trunk/reactos/base/shell/cmd/lang/de-DE.rc
trunk/reactos/base/shell/cmd/lang/ro-RO.rc
Modified: trunk/reactos/base/shell/cmd/lang/de-DE.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/lang/de-DE.…
==============================================================================
--- trunk/reactos/base/shell/cmd/lang/de-DE.rc [iso-8859-1] (original)
+++ trunk/reactos/base/shell/cmd/lang/de-DE.rc [iso-8859-1] Sun Jul 8 16:16:53 2012
@@ -584,7 +584,7 @@
MKDIR Erstellt ein Verzeichnis.\n\
MKLINK Erzeugt eine Dateisystemverknüpfung.\n\
MOVE Verschiebt eine oder mehrere Dateien von einem Verzeichnis in\n\
- ein anderes.\n\"
+ ein anderes.\n"
STRING_HELP2, "PATH Legt den Suchpfad für ausführbare Dateien fest oder zeigt diesen an.\n\
PAUSE Hält die Ausführung einer Batchdatei an und zeigt eine Meldung an.\n\
POPD Wechselt zu dem Verzeichnis, das durch PUSHD gespeichert wurde.\n\
Modified: trunk/reactos/base/shell/cmd/lang/ro-RO.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/lang/ro-RO.…
==============================================================================
--- trunk/reactos/base/shell/cmd/lang/ro-RO.rc [iso-8859-1] (original)
+++ trunk/reactos/base/shell/cmd/lang/ro-RO.rc [iso-8859-1] Sun Jul 8 16:16:53 2012
@@ -635,7 +635,7 @@
MD Crează un director.\n\
MKDIR Crează un director.\n\
MKLINK Crează un obiect-legătură în sistemul de fișiere.\n\
-MOVE Mută unul sau mai multe fișiere dintr-un director în altul.\n\"
+MOVE Mută unul sau mai multe fișiere dintr-un director în altul.\n"
STRING_HELP2, "PATH Afișează sau stabilește căile de căutare de fișierelor executabile.\n\
PAUSE Suspendă execuția unui fișier de comenzi și afișează un mesaj.\n\
POPD Restabilește valoarea precedentă a directorului curent, anterior\n\
Author: tkreuzer
Date: Sun Jul 8 16:06:24 2012
New Revision: 56854
URL: http://svn.reactos.org/svn/reactos?rev=56854&view=rev
Log:
[CMD]
Fix build with VS 2012
Modified:
trunk/reactos/base/shell/cmd/lang/de-DE.rc
trunk/reactos/base/shell/cmd/lang/ro-RO.rc
Modified: trunk/reactos/base/shell/cmd/lang/de-DE.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/lang/de-DE.…
==============================================================================
--- trunk/reactos/base/shell/cmd/lang/de-DE.rc [iso-8859-1] (original)
+++ trunk/reactos/base/shell/cmd/lang/de-DE.rc [iso-8859-1] Sun Jul 8 16:06:24 2012
@@ -584,8 +584,8 @@
MKDIR Erstellt ein Verzeichnis.\n\
MKLINK Erzeugt eine Dateisystemverknüpfung.\n\
MOVE Verschiebt eine oder mehrere Dateien von einem Verzeichnis in\n\
- ein anderes.\n\
-PATH Legt den Suchpfad für ausführbare Dateien fest oder zeigt diesen an.\n\
+ ein anderes.\n\"
+STRING_HELP2, "PATH Legt den Suchpfad für ausführbare Dateien fest oder zeigt diesen an.\n\
PAUSE Hält die Ausführung einer Batchdatei an und zeigt eine Meldung an.\n\
POPD Wechselt zu dem Verzeichnis, das durch PUSHD gespeichert wurde.\n\
PROMPT Ändert die Eingabeaufforderung.\n\
@@ -599,8 +599,8 @@
RMDIR Löscht ein Verzeichnis.\n\
SCREEN Bewegt den Cursor und optional die Ausgabe.\n\
SET Setzt oder löscht die Umgebungsvariablen bzw. zeigt sie an.\n\
-SHIFT Verändert die Position ersetzbarer Parameter in Batchdateien.\n"
-STRING_HELP2, "START Startet ein eigenes Fenster, um ein bestimmtes Programm oder einen\n\
+SHIFT Verändert die Position ersetzbarer Parameter in Batchdateien.\n\
+START Startet ein eigenes Fenster, um ein bestimmtes Programm oder einen\n\
Befehl auszuführen.\n\
TIME Zeigt die Systemzeit an bzw. legt sie fest.\n\
TIMER Erlaubt die Benutzung von bis zu 10 Stoppuhren\n\
Modified: trunk/reactos/base/shell/cmd/lang/ro-RO.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/lang/ro-RO.…
==============================================================================
--- trunk/reactos/base/shell/cmd/lang/ro-RO.rc [iso-8859-1] (original)
+++ trunk/reactos/base/shell/cmd/lang/ro-RO.rc [iso-8859-1] Sun Jul 8 16:06:24 2012
@@ -635,8 +635,8 @@
MD Crează un director.\n\
MKDIR Crează un director.\n\
MKLINK Crează un obiect-legătură în sistemul de fișiere.\n\
-MOVE Mută unul sau mai multe fișiere dintr-un director în altul.\n\
-PATH Afișează sau stabilește căile de căutare de fișierelor executabile.\n\
+MOVE Mută unul sau mai multe fișiere dintr-un director în altul.\n\"
+STRING_HELP2, "PATH Afișează sau stabilește căile de căutare de fișierelor executabile.\n\
PAUSE Suspendă execuția unui fișier de comenzi și afișează un mesaj.\n\
POPD Restabilește valoarea precedentă a directorului curent, anterior\n\
stocată cu PUSHD.\n\
@@ -646,8 +646,8 @@
REM Desemnează un rând de comentarii într-un fișier de comenzi.\n\
REN Redenumește un fișier/director sau un grup (de fișiere/directoare).\n\
RENAME Redenumește un fișier/director sau un grup (de fișiere/directoare).\n\
-REPLACE Înlocuiește fișiere.\n"
-STRING_HELP2, "RMDIR Elimină un director.\n\
+REPLACE Înlocuiește fișiere.\n\
+RMDIR Elimină un director.\n\
SCREEN Mută cursorul și (opțional) afișează un text.\n\
SET Afișează, stabilește sau elimină variabile de mediu ReactOS.\n\
SHIFT Schimbă poziția argumentelor înlocuibile într-un fișier de comenzi.\n\