summaryrefslogtreecommitdiffstats
path: root/base/synchronization
diff options
context:
space:
mode:
authoreroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-08 01:39:56 +0000
committereroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-08 01:39:56 +0000
commite840891f945ceb5506ffaf3264b11c6d58584042 (patch)
treed4efd4d234dad6992504f43ac5b1f91dd1ebbc4b /base/synchronization
parent5e61437ea0d3c70a92d97747b2ba39b1df139e32 (diff)
downloadchromium_src-e840891f945ceb5506ffaf3264b11c6d58584042.zip
chromium_src-e840891f945ceb5506ffaf3264b11c6d58584042.tar.gz
chromium_src-e840891f945ceb5506ffaf3264b11c6d58584042.tar.bz2
Revert 107835 (since the underlying issue has been identified and fixed) - Temporary instrumentation to help understand lock errors on mac debug bots.
BUG=102161 Review URL: http://codereview.chromium.org/8414031 TBR=eroman@chromium.org Review URL: http://codereview.chromium.org/8497002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108963 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/synchronization')
-rw-r--r--base/synchronization/lock_impl.h23
-rw-r--r--base/synchronization/lock_impl_posix.cc24
2 files changed, 0 insertions, 47 deletions
diff --git a/base/synchronization/lock_impl.h b/base/synchronization/lock_impl.h
index 1dcf6a4..63efc5ff 100644
--- a/base/synchronization/lock_impl.h
+++ b/base/synchronization/lock_impl.h
@@ -17,18 +17,6 @@
#include "base/base_export.h"
#include "base/basictypes.h"
-#if defined(OS_MACOSX) && !defined(NDEBUG)
-// For Mac debug builds, do some extra checks to make sure a LockImpl is not
-// used after it has been freed. This instrumentation is to help track down
-// spurious locking errors (EINVAL) which are happening on the bots.
-// In particular, I want to make sure they aren't a consequence of having
-// used a freed lock object (which can happen for instance when trying to
-// post tasks to a destroyed MessageLoop).
-// See http://crbug.com/102161 for more details. This instrumentation can be
-// removed once that bug has been identified.
-#define LOCK_IMPL_CHECK_LIVENESS
-#endif
-
namespace base {
namespace internal {
@@ -65,17 +53,6 @@ class BASE_EXPORT LockImpl {
#endif
private:
-#ifdef LOCK_IMPL_CHECK_LIVENESS
- enum LivenessToken {
- LT_ALIVE = 0xCa11ab1e, // 3390155550
- LT_DELETED = 0xDecea5ed, // 3738084845
- };
-
- void CheckIsAlive();
-
- LivenessToken liveness_token_;
-#endif // LOCK_IMPL_CHECK_LIVENESS
-
OSLockType os_lock_;
DISALLOW_COPY_AND_ASSIGN(LockImpl);
diff --git a/base/synchronization/lock_impl_posix.cc b/base/synchronization/lock_impl_posix.cc
index 8db953a..f638fcd 100644
--- a/base/synchronization/lock_impl_posix.cc
+++ b/base/synchronization/lock_impl_posix.cc
@@ -12,10 +12,6 @@ namespace base {
namespace internal {
LockImpl::LockImpl() {
-#ifdef LOCK_IMPL_CHECK_LIVENESS
- liveness_token_ = LT_ALIVE;
-#endif
-
#ifndef NDEBUG
// In debug, setup attributes for lock error checking.
pthread_mutexattr_t mta;
@@ -34,45 +30,25 @@ LockImpl::LockImpl() {
}
LockImpl::~LockImpl() {
-#ifdef LOCK_IMPL_CHECK_LIVENESS
- CheckIsAlive();
- liveness_token_ = LT_DELETED;
-#endif
int rv = pthread_mutex_destroy(&os_lock_);
DCHECK_EQ(rv, 0);
}
bool LockImpl::Try() {
-#ifdef LOCK_IMPL_CHECK_LIVENESS
- CheckIsAlive();
-#endif
int rv = pthread_mutex_trylock(&os_lock_);
DCHECK(rv == 0 || rv == EBUSY);
return rv == 0;
}
void LockImpl::Lock() {
-#ifdef LOCK_IMPL_CHECK_LIVENESS
- CheckIsAlive();
-#endif
int rv = pthread_mutex_lock(&os_lock_);
DCHECK_EQ(rv, 0);
}
void LockImpl::Unlock() {
-#ifdef LOCK_IMPL_CHECK_LIVENESS
- CheckIsAlive();
-#endif
int rv = pthread_mutex_unlock(&os_lock_);
DCHECK_EQ(rv, 0);
}
-#ifdef LOCK_IMPL_CHECK_LIVENESS
-void LockImpl::CheckIsAlive() {
- CHECK_EQ(LT_ALIVE, liveness_token_)
- << "Lock was invalid. Please see: http://crbug.com/102161";
-}
-#endif
-
} // namespace internal
} // namespace base