[ros-diffs] [mf] 14434: terminate shell service objects thread if there is nothing to do

mf at svn.reactos.com mf at svn.reactos.com
Sat Apr 2 12:48:19 CEST 2005


terminate shell service objects thread if there is nothing to do
Modified:
trunk/reactos/subsys/system/explorer/services/shellservices.cpp
  _____  

Modified:
trunk/reactos/subsys/system/explorer/services/shellservices.cpp
--- trunk/reactos/subsys/system/explorer/services/shellservices.cpp
2005-04-02 05:43:37 UTC (rev 14433)
+++ trunk/reactos/subsys/system/explorer/services/shellservices.cpp
2005-04-02 10:48:16 UTC (rev 14434)
@@ -66,29 +66,31 @@

 		RegCloseKey(hkey);
 	}
 
-	MSG msg;
+	if (!sso_ptrs.empty()) {
+		MSG msg;
 
-	while(_alive) {
-		if (MsgWaitForMultipleObjects(1, &_evtFinish, FALSE,
INFINITE, QS_ALLINPUT) == WAIT_OBJECT_0+0)
-			break;	// _evtFinish has been set.
-
 		while(_alive) {
-			if (!PeekMessage(&msg, 0, 0, 0, PM_REMOVE))
-				break;
+			if (MsgWaitForMultipleObjects(1, &_evtFinish,
FALSE, INFINITE, QS_ALLINPUT) == WAIT_OBJECT_0+0)
+				break;	// _evtFinish has been set.
 
-			if (msg.message == WM_QUIT)
-				break;
+			while(_alive) {
+				if (!PeekMessage(&msg, 0, 0, 0,
PM_REMOVE))
+					break;
 
-			TranslateMessage(&msg);
-			DispatchMessage(&msg);
+				if (msg.message == WM_QUIT)
+					break;
+
+				TranslateMessage(&msg);
+				DispatchMessage(&msg);
+			}
 		}
-	}
 
-	 // shutdown all running Shell Service Objects
-	for(SSOVector::iterator it=sso_ptrs.begin(); it!=sso_ptrs.end();
++it) {
-		SIfacePtr<IOleCommandTarget>* sso_ptr = *it;
-		(*sso_ptr)->Exec(&CGID_ShellServiceObject,
OLECMDID_SAVE, OLECMDEXECOPT_DODEFAULT, NULL, NULL);
-		delete sso_ptr;
+		 // shutdown all running Shell Service Objects
+		for(SSOVector::iterator it=sso_ptrs.begin();
it!=sso_ptrs.end(); ++it) {
+			SIfacePtr<IOleCommandTarget>* sso_ptr = *it;
+			(*sso_ptr)->Exec(&CGID_ShellServiceObject,
OLECMDID_SAVE, OLECMDEXECOPT_DODEFAULT, NULL, NULL);
+			delete sso_ptr;
+		}
 	}
 
 	return 0;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.reactos.org/pipermail/ros-diffs/attachments/20050402/0f80dbf5/attachment.html


More information about the Ros-diffs mailing list