#ifndef ABSL_BASE_INTERNAL_TSAN_MUTEX_INTERFACE_H_
#define ABSL_BASE_INTERNAL_TSAN_MUTEX_INTERFACE_H_
#include "absl/base/config.h"
#ifdef ABSL_INTERNAL_HAVE_TSAN_INTERFACE
#error "ABSL_INTERNAL_HAVE_TSAN_INTERFACE cannot be directly set."
#endif
#if defined(ABSL_HAVE_THREAD_SANITIZER) && defined(__has_include)
#if __has_include(<sanitizer/tsan_interface.h>)
#define ABSL_INTERNAL_HAVE_TSAN_INTERFACE …
#endif
#endif
#ifdef ABSL_INTERNAL_HAVE_TSAN_INTERFACE
#include <sanitizer/tsan_interface.h>
#define ABSL_TSAN_MUTEX_CREATE …
#define ABSL_TSAN_MUTEX_DESTROY …
#define ABSL_TSAN_MUTEX_PRE_LOCK …
#define ABSL_TSAN_MUTEX_POST_LOCK …
#define ABSL_TSAN_MUTEX_PRE_UNLOCK …
#define ABSL_TSAN_MUTEX_POST_UNLOCK …
#define ABSL_TSAN_MUTEX_PRE_SIGNAL …
#define ABSL_TSAN_MUTEX_POST_SIGNAL …
#define ABSL_TSAN_MUTEX_PRE_DIVERT …
#define ABSL_TSAN_MUTEX_POST_DIVERT …
#else
#define ABSL_TSAN_MUTEX_CREATE(...) …
#define ABSL_TSAN_MUTEX_DESTROY(...) …
#define ABSL_TSAN_MUTEX_PRE_LOCK(...) …
#define ABSL_TSAN_MUTEX_POST_LOCK(...) …
#define ABSL_TSAN_MUTEX_PRE_UNLOCK(...) …
#define ABSL_TSAN_MUTEX_POST_UNLOCK(...) …
#define ABSL_TSAN_MUTEX_PRE_SIGNAL(...) …
#define ABSL_TSAN_MUTEX_POST_SIGNAL(...) …
#define ABSL_TSAN_MUTEX_PRE_DIVERT(...) …
#define ABSL_TSAN_MUTEX_POST_DIVERT(...) …
#endif
#endif