Index: runtime/vm/thread_interrupter.cc |
diff --git a/runtime/vm/thread_interrupter.cc b/runtime/vm/thread_interrupter.cc |
index 23e6c22fc4df17365db199763c694b035edc0769..776a2ac1d820dc4683efaca142a06058be6eb061 100644 |
--- a/runtime/vm/thread_interrupter.cc |
+++ b/runtime/vm/thread_interrupter.cc |
@@ -101,24 +101,12 @@ void ThreadInterrupter::Shutdown() { |
OS::Print("ThreadInterrupter shutting down.\n"); |
} |
} |
-#if defined(TARGET_OS_WINDOWS) |
- // On Windows, a thread's exit-code can leak into the process's exit-code, |
- // if exiting 'at same time' as the process ends. By joining with the thread |
- // here, we avoid this race condition. |
+ |
+ // Join the thread. |
ASSERT(interrupter_thread_id_ != OSThread::kInvalidThreadId); |
OSThread::Join(interrupter_thread_id_); |
interrupter_thread_id_ = OSThread::kInvalidThreadId; |
-#else |
- // On non-Windows platforms, just wait for the thread interrupter to signal |
- // that it has exited the loop. |
- { |
- MonitorLocker shutdown_ml(monitor_); |
- while (thread_running_) { |
- // Wait for thread to exit. |
- shutdown_ml.Wait(); |
- } |
- } |
-#endif |
+ |
if (FLAG_trace_thread_interrupter) { |
OS::Print("ThreadInterrupter shut down.\n"); |
} |