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