absl: fix lint errors in Mutex

Currently linter warns on all changes:

missing #include <cstdlib> for 'std::atexit'

and

single-argument constructors must be marked explicit to avoid unintentional implicit conversions

Fix that.

PiperOrigin-RevId: 542135136
Change-Id: Ic86649de6baef7f2de71f45875bb66bd730bf6e1
diff --git a/absl/synchronization/mutex.cc b/absl/synchronization/mutex.cc
index df7577b..3aa5560 100644
--- a/absl/synchronization/mutex.cc
+++ b/absl/synchronization/mutex.cc
@@ -36,6 +36,7 @@
 #include <algorithm>
 #include <atomic>
 #include <cstddef>
+#include <cstdlib>
 #include <cstring>
 #include <thread>  // NOLINT(build/c++11)
 
diff --git a/absl/synchronization/mutex.h b/absl/synchronization/mutex.h
index 184a585..2fd077c 100644
--- a/absl/synchronization/mutex.h
+++ b/absl/synchronization/mutex.h
@@ -513,7 +513,7 @@
       base_internal::PerThreadSynch* w);  // used for CondVar->Mutex transfer
 
   // Catch the error of writing Mutex when intending MutexLock.
-  Mutex(const volatile Mutex* /*ignored*/) {}  // NOLINT(runtime/explicit)
+  explicit Mutex(const volatile Mutex* /*ignored*/) {}
 
   Mutex(const Mutex&) = delete;
   Mutex& operator=(const Mutex&) = delete;