diff options
author | Abseil Team <absl-team@google.com> | 2020-02-25 08:48:42 -0800 |
---|---|---|
committer | CJ Johnson <johnsoncj@google.com> | 2020-02-25 13:12:47 -0500 |
commit | 0d5ce2797eb695aee7e019e25323251ef6ffc277 (patch) | |
tree | e8f17f3202cce51bcb9f25175349b7a61e7ba664 /absl/base/internal/spinlock_linux.inc | |
parent | b69c7d880caddfc25bf348dbcfe9d45fdd8bc6e6 (diff) |
Export of internal Abseil changes
--
20405fc394419d434d3ea09b2e62e4edcb282421 by Christian Blichmann <cblichmann@google.com>:
Include `status` subdirectory in main `CMakeLists.txt`
PiperOrigin-RevId: 297125966
--
101087af9689612bdda679ee0869e5cde4472244 by Matt Kulukundis <kfm@google.com>:
Fix typo
PiperOrigin-RevId: 296991360
--
55ff5bc6970d46214c0459d3a7a23973c7dc69b9 by Andy Getzendanner <durandal@google.com>:
Extract logging's ErrnoSaver to absl::base_internal and use it in a couple other places.
PiperOrigin-RevId: 296969168
--
b7cd7550297d53766576f751436617200c65831b by Abseil Team <absl-team@google.com>:
Internal change
PiperOrigin-RevId: 296951474
--
8c04c73fc53f9a09c3e2400812b931157f35fe07 by Andy Soffer <asoffer@google.com>:
Auto-generate list of files in the DLL, and add new build targets to the DLL.
PiperOrigin-RevId: 296932061
--
2f77829e196094f1addefd8ac2ac9e398c5b6100 by Andy Soffer <asoffer@google.com>:
Fix bug introduced by DLL where we couldn't build shared libraries on
non-windows platforms.
Fixes #623
PiperOrigin-RevId: 296919347
--
b768163dbbff0c561b9dff0218a699e5e4fd33f3 by Abseil Team <absl-team@google.com>:
typo: microprosessor
PiperOrigin-RevId: 296904933
--
b185da0dac44c91855373f0723df9242cbfb3db3 by Matthew Brown <matthewbr@google.com>:
Internal cleanup
PiperOrigin-RevId: 296509711
GitOrigin-RevId: 20405fc394419d434d3ea09b2e62e4edcb282421
Change-Id: I55c8eba6f353ceb337455ae144ab743ea21edbef
Diffstat (limited to 'absl/base/internal/spinlock_linux.inc')
-rw-r--r-- | absl/base/internal/spinlock_linux.inc | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/absl/base/internal/spinlock_linux.inc b/absl/base/internal/spinlock_linux.inc index 28e29d19..323edd62 100644 --- a/absl/base/internal/spinlock_linux.inc +++ b/absl/base/internal/spinlock_linux.inc @@ -19,12 +19,12 @@ #include <unistd.h> #include <atomic> -#include <cerrno> #include <climits> #include <cstdint> #include <ctime> #include "absl/base/attributes.h" +#include "absl/base/internal/errno_saver.h" // The SpinLock lockword is `std::atomic<uint32_t>`. Here we assert that // `std::atomic<uint32_t>` is bitwise equivalent of the `int` expected @@ -51,12 +51,11 @@ extern "C" { ABSL_ATTRIBUTE_WEAK void AbslInternalSpinLockDelay( std::atomic<uint32_t> *w, uint32_t value, int loop, absl::base_internal::SchedulingMode) { - int save_errno = errno; + absl::base_internal::ErrnoSaver errno_saver; struct timespec tm; tm.tv_sec = 0; tm.tv_nsec = absl::base_internal::SpinLockSuggestedDelayNS(loop); syscall(SYS_futex, w, FUTEX_WAIT | FUTEX_PRIVATE_FLAG, value, &tm); - errno = save_errno; } ABSL_ATTRIBUTE_WEAK void AbslInternalSpinLockWake(std::atomic<uint32_t> *w, |