tvl-depot/absl/base/internal
Abseil Team 0dffca4e36 Export of internal Abseil changes.
--
5804cc13b413412988248835459b90cd15ec43d9 by Abseil Team <absl-team@google.com>:

Mark raw_hash_set::clear() with the ABSL_ATTRIBUTE_REINITIALIZES attribute.

This prevents false positives in the clang-tidy check bugprone-use-after-move;
it allows reset() to be called on a moved-from raw_hash_set without any
warnings, and the raw_hash_set will thereafter be regarded as initialized again.

PiperOrigin-RevId: 230717196

--
ff5961a5600ae19b69a9cba6912126cdf2858f38 by CJ Johnson <johnsoncj@google.com>:

Swaps DisableIfIntegral<> for EnableIfInputIterator<> for Iterator member functions of InlinedVector

PiperOrigin-RevId: 230559521

--
3f9754ccbeecbd40f235c6f2465279e045ff51d9 by Derek Mauro <dmauro@google.com>:

Import GitHub PR 254
https://github.com/abseil/abseil-cpp/pull/254

Fixes warnings from -Wclass-memaccess (base_internal::ThreadIdentity?
with no trivial copy-assignment).

PiperOrigin-RevId: 230536048

--
8af03a654ce9a4a7f55384bc7eb1ed64878ac2ec by Chris Kennelly <ckennelly@google.com>:

absl: cap SpinLock backoff to 4ms

The current backoff logic has 3 problems:
1. It can produce too high values (up to 256ms), which can negatively
affect tail latency. The value was chosen long time ago and now it's
a good idea to reconsider it.
2. It does not have low bound, so on any iteration it can produce
a very small value that will lead to unnecessary cpu consumption.
3. It does not increase low bound with the number of iterations.
So if the SpinLock is actually somehow locked for a very prolonged time,
a waiter can still wake periodically.

Rework the logic to solve these problems.
Add lower bound of 128us, no code should rely on absence of episodic
delays in this range as they can occur everywhere.
Lower upper bound to 4ms. A thread sleeping for 4ms does not consume
significant cpu time (see below).
Grow lower bound with the number of iterations.

This is cpu consumption of a process doing usleep(x) in a loop
(sampled with ps):

    64us -> 4.0%
   128us -> 2.7%
   256us -> 3.5%
   512us -> 2.8%
  1024us -> 1.6%
  2048us -> 0.6%
  4096us -> 0.3%
  8192us -> 0.0%

Few millisecond sleeps do not consume significant time.

PiperOrigin-RevId: 230534015

--
37ebba92289ca556cb2412cd8b3cb4c1ead3def7 by Samuel Benzaquen <sbenza@google.com>:

Add override and dispose hooks to the hashtable sampler.

PiperOrigin-RevId: 230353438

--
89c8f90175233ce9964eb3412df04e8a3cff0c0f by Andy Getzendanner <durandal@google.com>:

Fix a comment typo.

PiperOrigin-RevId: 229986838
GitOrigin-RevId: 5804cc13b413412988248835459b90cd15ec43d9
Change-Id: Iedb5e2cc9c0b924635c1c87b537780ab6b5b899f
2019-01-24 11:10:30 -05:00
..
atomic_hook.h - 07191b0f52301e1e4a790e236f7b7c2fd90561ae Disambiguates computed return type of absl::optional logi... by Abseil Team <absl-team@google.com> 2018-05-04 13:30:42 -04:00
atomic_hook_test.cc - 07191b0f52301e1e4a790e236f7b7c2fd90561ae Disambiguates computed return type of absl::optional logi... by Abseil Team <absl-team@google.com> 2018-05-04 13:30:42 -04:00
bits.h Export of internal Abseil changes. 2018-08-23 13:48:48 -04:00
bits_test.cc Export of internal Abseil changes. 2018-08-23 13:48:48 -04:00
cycleclock.cc Export of internal Abseil changes. 2019-01-07 15:22:43 -05:00
cycleclock.h Export of internal Abseil changes. 2019-01-07 15:22:43 -05:00
direct_mmap.h Export of internal Abseil changes. 2018-11-19 15:11:12 -05:00
endian.h Fix compilation of generic byteswap routines 2018-10-25 23:22:02 +01:00
endian_test.cc Export of internal Abseil changes. 2018-07-17 14:32:16 -04:00
exception_safety_testing.cc Export of internal Abseil changes. 2018-10-24 16:47:28 -04:00
exception_safety_testing.h Export of internal Abseil changes. 2018-11-06 16:06:39 -05:00
exception_testing.h Export of internal Abseil changes. 2018-08-06 10:29:20 -04:00
hide_ptr.h - e2f6b8ac647271815b4fed2991f405524dd762c3 Release cctz microbenchmarks. by Alex Strelnikov <strel@google.com> 2018-05-31 15:58:36 -04:00
identity.h - d6b8d35be9659e1c99a5daca1af8c8587acaa044 Update bazel_toolchains to the latest commit. by Abseil Team <absl-team@google.com> 2018-06-15 11:09:49 -04:00
inline_variable.h Changes imported from Abseil "staging" branch: 2018-02-01 10:36:37 -05:00
inline_variable_testing.h Changes imported from Abseil "staging" branch: 2018-01-24 15:32:49 -05:00
invoke.h Initial Commit 2017-09-19 16:54:40 -04:00
low_level_alloc.cc Export of internal Abseil changes. 2018-11-19 15:11:12 -05:00
low_level_alloc.h Export of internal Abseil changes. 2018-09-13 13:24:44 -04:00
low_level_alloc_test.cc - ed0ba496fe01eb8edfa86beade8a37768e7c12ef Updates the API for Exception Safety testing to use build... by Abseil Team <absl-team@google.com> 2018-04-19 10:19:32 -04:00
low_level_scheduling.h Changes imported from Abseil "staging" branch: 2017-09-25 10:12:29 -04:00
per_thread_tls.h Export of internal Abseil changes. 2019-01-07 15:22:43 -05:00
pretty_function.h Changes imported from Abseil "staging" branch: 2017-12-20 17:03:18 -05:00
raw_logging.cc Export of internal Abseil changes. 2018-07-13 16:43:41 -04:00
raw_logging.h Export of internal Abseil changes. 2018-08-22 11:02:33 -04:00
scheduling_mode.h Changes imported from Abseil "staging" branch: 2017-09-25 10:12:29 -04:00
spinlock.cc Export of internal Abseil changes. 2018-11-07 16:54:23 -05:00
spinlock.h Export of internal Abseil changes. 2018-12-04 16:27:57 -05:00
spinlock_akaros.inc Changes imported from Abseil "staging" branch: 2017-10-24 14:52:11 -04:00
spinlock_benchmark.cc Export of internal Abseil changes. 2018-12-04 16:27:57 -05:00
spinlock_linux.inc Export of internal Abseil changes. 2019-01-24 11:10:30 -05:00
spinlock_posix.inc Initial Commit 2017-09-19 16:54:40 -04:00
spinlock_wait.cc Export of internal Abseil changes. 2019-01-24 11:10:30 -05:00
spinlock_wait.h -- 2018-06-18 16:20:03 -04:00
spinlock_win32.inc Initial Commit 2017-09-19 16:54:40 -04:00
sysinfo.cc Changes imported from Abseil "staging" branch: 2018-03-06 17:21:05 -05:00
sysinfo.h Changes imported from Abseil "staging" branch: 2017-09-25 10:12:29 -04:00
sysinfo_test.cc Changes imported from Abseil "staging" branch: 2017-09-25 10:12:29 -04:00
thread_identity.cc Export of internal Abseil changes. 2018-09-13 13:24:44 -04:00
thread_identity.h Merge #78: Fix typo in thread_identity.h 2018-01-10 14:47:08 -05:00
thread_identity_benchmark.cc - e2f6b8ac647271815b4fed2991f405524dd762c3 Release cctz microbenchmarks. by Alex Strelnikov <strel@google.com> 2018-05-31 15:58:36 -04:00
thread_identity_test.cc Changes imported from Abseil "staging" branch: 2017-12-18 10:00:09 -05:00
throw_delegate.cc Export of internal Abseil changes. 2018-11-16 16:38:42 -05:00
throw_delegate.h Initial Commit 2017-09-19 16:54:40 -04:00
tsan_mutex_interface.h Changes imported from Abseil "staging" branch: 2017-10-17 16:42:15 -04:00
unaligned_access.h Export of internal Abseil changes. 2018-10-03 09:19:28 -04:00
unscaledcycleclock.cc Initial Commit 2017-09-19 16:54:40 -04:00
unscaledcycleclock.h Changes imported from Abseil "staging" branch: 2017-09-20 10:37:35 -04:00