[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[vidalia-svn] r1239: Check if there is a receive waiter before trying to take one (trunk/src/control)



Author: edmanm
Date: 2006-09-25 15:47:43 -0400 (Mon, 25 Sep 2006)
New Revision: 1239

Modified:
   trunk/src/control/controlconnection.cpp
Log:
Check if there is a receive waiter before trying to take one from the queue.
For example, we don't wait for a response to `signal shutdown` since old Tors 
don't give us one; they just disappear.


Modified: trunk/src/control/controlconnection.cpp
===================================================================
--- trunk/src/control/controlconnection.cpp	2006-09-25 17:50:57 UTC (rev 1238)
+++ trunk/src/control/controlconnection.cpp	2006-09-25 19:47:43 UTC (rev 1239)
@@ -258,8 +258,10 @@
       } else {
         /* Response to a previous command */
         _recvMutex.lock();
-        waiter = _recvQueue.dequeue();
-        waiter->setResult(Success, reply);
+        if (!_recvQueue.isEmpty()) {
+          waiter = _recvQueue.dequeue();
+          waiter->setResult(Success, reply);
+        }
         _recvMutex.unlock();
       }
     }