[tor-commits] [vidalia/master] Fix deadlock when browser process does not launch

chiiph at torproject.org chiiph at torproject.org
Wed Mar 21 23:48:27 UTC 2012


commit 1fa42e88f3d6f19a36d3844013eae196e5c41946
Author: Tomás Touceda <chiiph at torproject.org>
Date:   Wed Mar 21 20:46:10 2012 -0300

    Fix deadlock when browser process does not launch
---
 src/vidalia/HelperProcess.cpp |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/vidalia/HelperProcess.cpp b/src/vidalia/HelperProcess.cpp
index b80f151..5c791bf 100644
--- a/src/vidalia/HelperProcess.cpp
+++ b/src/vidalia/HelperProcess.cpp
@@ -137,14 +137,19 @@ HelperProcess::isDone() const
 void
 HelperProcess::toForeground()
 {
-#if defined(Q_WS_MAC) 
+#if defined(Q_WS_MAC)
+  if(state() != QProcess::Running)
+    return;
+
   ProcessSerialNumber psn;
   OSStatus st;
 
   do {
     st = GetProcessForPID(pid(), &psn);
-  } while(st == -600);
+    QCoreApplication::processEvents();
+  } while(st == procNotFound and state() == QProcess::Running);
 
-  SetFrontProcess(&psn);
-#endif 
+  if(st != procNotFound)
+    SetFrontProcess(&psn);
+#endif
 }





More information about the tor-commits mailing list