Left: | ||
Right: |
OLD | NEW |
---|---|
1 #include <stdexcept> | 1 #include <stdexcept> |
2 #include <functional> | 2 #include <functional> |
3 #include <wctype.h> | 3 #include <wctype.h> |
4 // <thread> is C++11, but implemented in VS2012 | 4 // <thread> is C++11, but implemented in VS2012 |
5 #include <thread> | 5 #include <thread> |
6 | 6 |
7 #include "installer-lib.h" | 7 #include "installer-lib.h" |
8 #include "process.h" | 8 #include "process.h" |
9 #include "handle.h" | 9 #include "handle.h" |
10 #include "session.h" | 10 #include "session.h" |
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
271 case 3 : | 271 case 3 : |
272 { | 272 { |
273 /* | 273 /* |
274 * Send WM_CLOSE to every admissible window. | 274 * Send WM_CLOSE to every admissible window. |
275 */ | 275 */ |
276 send_message m( WM_CLOSE, 0, 0 ) ; | 276 send_message m( WM_CLOSE, 0, 0 ) ; |
277 iterate_our_windows( m ) ; | 277 iterate_our_windows( m ) ; |
278 } | 278 } |
279 break ; | 279 break ; |
280 | 280 |
281 default : | 281 default : |
Eric
2015/03/13 16:49:48
This should be "case 4 :" and we should retain the
| |
282 /* | 282 /* |
283 * We're out of ways to try to shut down. | 283 * We're out of ways to try to shut down. Oh well. Take cover. It gets viol ent here. |
Eric
2015/03/13 16:49:48
Good comment.
| |
284 */ | 284 */ |
285 return false ; | 285 for (auto it = pid_set.begin(); it != pid_set.end(); ++it) |
286 { | |
287 HANDLE tmpHandle = OpenProcess(PROCESS_TERMINATE, FALSE, *it); | |
288 if (tmpHandle != NULL) | |
Eric
2015/03/13 16:49:48
We can use implicit conversion to bool here.
I wo
| |
289 { | |
290 Windows_Handle procHandle(tmpHandle); | |
291 TerminateProcess(tmpHandle, 0); | |
292 } | |
293 } | |
294 Refresh(); | |
295 | |
296 return !IsRunning() ; | |
286 } | 297 } |
287 | 298 |
288 /* | 299 /* |
289 * Wait loop. | 300 * Wait loop. |
290 */ | 301 */ |
291 for ( unsigned int j = 0 ; j < 50 ; ++ j ) | 302 for ( unsigned int j = 0 ; j < 50 ; ++ j ) |
292 { | 303 { |
293 std::this_thread::sleep_for( std::chrono::milliseconds( 100 ) ) ; | 304 std::this_thread::sleep_for( std::chrono::milliseconds( 30 ) ) ; |
sergei
2015/04/02 08:04:09
no spaces?
| |
294 Refresh() ; | 305 Refresh() ; |
295 if ( ! IsRunning() ) | 306 if ( ! IsRunning() ) |
296 { | 307 { |
297 return true ; | 308 return true ; |
298 } | 309 } |
299 } | 310 } |
300 // Assert is_running() | 311 // Assert is_running() |
301 } | 312 } |
302 // No control path leaves the for-loop. | 313 // No control path leaves the for-loop. |
303 } ; | 314 } ; |
304 | 315 |
OLD | NEW |