You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by be...@apache.org on 2011/06/05 07:34:32 UTC

svn commit: r1131796 - /incubator/mesos/trunk/src/third_party/libprocess/process.cpp

Author: benh
Date: Sun Jun  5 05:34:31 2011
New Revision: 1131796

URL: http://svn.apache.org/viewvc?rev=1131796&view=rev
Log:
Fixed a deadlock in libprocess, yeehaw.

Modified:
    incubator/mesos/trunk/src/third_party/libprocess/process.cpp

Modified: incubator/mesos/trunk/src/third_party/libprocess/process.cpp
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/third_party/libprocess/process.cpp?rev=1131796&r1=1131795&r2=1131796&view=diff
==============================================================================
--- incubator/mesos/trunk/src/third_party/libprocess/process.cpp (original)
+++ incubator/mesos/trunk/src/third_party/libprocess/process.cpp Sun Jun  5 05:34:31 2011
@@ -1079,9 +1079,9 @@ public:
     Gate *gate = NULL;
 
     /* Remove process. */
-    process->lock();
+    acquire(processes);
     {
-      acquire(processes);
+      process->lock();
       {
 	/* Free any pending messages. */
 	while (!process->msgs.empty()) {
@@ -1125,9 +1125,9 @@ public:
 	  gates.erase(it);
 	}
       }
-      release(processes);
+      process->unlock();
     }
-    process->unlock();
+    release(processes);
 
     /*
      * N.B. After opening the gate we can no longer dereference