From 46ed9d96d1412223d22430ca2aed4411894c2d63 Mon Sep 17 00:00:00 2001
From: Abseil Team <absl-team@google.com>
Date: Sun, 28 Jan 2018 22:33:45 -0800
Subject: [PATCH] Changes imported from Abseil "staging" branch:

  - bf0a6e6c8e5baf66a041741588e19ddf68180879 Inline Mutex constructor. by Abseil Team <absl-team@google.com>
  - d53a9c76bc8a16bf79ed7118ca279ca8bebdf18b Internal merge of https://github.com/abseil/abseil-cpp/pu... by Jon Cohen <cohenjon@google.com>

GitOrigin-RevId: bf0a6e6c8e5baf66a041741588e19ddf68180879
Change-Id: Iebb4f88f59b7476012e19895ea6f348a2af4a1ae
---
 absl/synchronization/mutex.cc | 5 -----
 absl/synchronization/mutex.h  | 4 ++++
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/absl/synchronization/mutex.cc b/absl/synchronization/mutex.cc
index 06a058cf..33f92d8f 100644
--- a/absl/synchronization/mutex.cc
+++ b/absl/synchronization/mutex.cc
@@ -48,7 +48,6 @@
 #include "absl/base/internal/spinlock.h"
 #include "absl/base/internal/sysinfo.h"
 #include "absl/base/internal/thread_identity.h"
-#include "absl/base/internal/tsan_mutex_interface.h"
 #include "absl/base/port.h"
 #include "absl/debugging/stacktrace.h"
 #include "absl/synchronization/internal/graphcycles.h"
@@ -687,10 +686,6 @@ static unsigned TsanFlags(Mutex::MuHow how) {
 }
 #endif
 
-Mutex::Mutex() : mu_(0) {
-  ABSL_TSAN_MUTEX_CREATE(this, __tsan_mutex_not_static);
-}
-
 static bool DebugOnlyIsExiting() {
   return false;
 }
diff --git a/absl/synchronization/mutex.h b/absl/synchronization/mutex.h
index b09802b5..374cf57d 100644
--- a/absl/synchronization/mutex.h
+++ b/absl/synchronization/mutex.h
@@ -64,6 +64,7 @@
 #include "absl/base/internal/identity.h"
 #include "absl/base/internal/low_level_alloc.h"
 #include "absl/base/internal/thread_identity.h"
+#include "absl/base/internal/tsan_mutex_interface.h"
 #include "absl/base/port.h"
 #include "absl/base/thread_annotations.h"
 #include "absl/synchronization/internal/kernel_timeout.h"
@@ -860,6 +861,9 @@ class SCOPED_LOCKABLE ReleasableMutexLock {
 
 #ifdef ABSL_INTERNAL_USE_NONPROD_MUTEX
 #else
+inline Mutex::Mutex() : mu_(0) {
+  ABSL_TSAN_MUTEX_CREATE(this, __tsan_mutex_not_static);
+}
 
 inline CondVar::CondVar() : cv_(0) {}
 #endif
-- 
GitLab