| Commit message (Collapse) | Author | Age |
... | |
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 484181180
Change-Id: I00206c1506a25dca5555261d6500c1e54368a368
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
ABSL_RANDOM_RANDEN_COPTS
Everything works fine when this is empty
Fixes #1301
PiperOrigin-RevId: 484014466
Change-Id: I2fa96d845320f23063e1e86ee2df3ac14bd44012
|
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 483972593
Change-Id: I5358871cdf825bbfae65bf9f5872c4fd56005fb7
|
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 483752526
Change-Id: Ie6b63a4a3cc7593e5b8bf255ba571a77d609ce04
|
| |
| |
| |
| |
| |
| |
| |
| | |
- Check for invalid generation before checking for other types of invalid iterators.
- Check specifically for dereferencing end() iterators.
PiperOrigin-RevId: 483725646
Change-Id: Ibca19c48b1b242384683580145be8fb9ae707bc8
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
On single-core systems, a thread could be preempted while holding an
absl::Mutex, or even worse, the spin lock. If a FIFO thread wakes up and
tries to acquire this lock, it might not be able to yield() to the sleeping
thread.
Within MutexDelay(), a yield() and a sleep(10us) are used to yield the CPU.
The yield() would do nothing if the calling thread holds the highest
priority in the system. The 10us sleep() may not be able to reach the
scheduler either, if the system is slow enough.
This code path is known to be reachable in the following scenarios:
- a FIFO thread calls LockSlowLoop() with spin lock held by a normal thread
- a FIFO thread calls LockWhen*() with the Mutex held by a normal thread for a long time
- a FIFO thread calls Await*(), releases the Mutex to be held by a normal thread for a long time
This CL adds a mutex global for the sleep time, and sets it using the
return time of the a yield() call. Yield() must reach the
scheduler even when it fails to yield to anyone, and would allow sleep() to do the
same. A small constant multiplier (5) is also applied to overcome uncontrollable
factors in the runtime and help sleep() to consistently yield to another thread.
Upper and lower bounds for the sleep time is also controlled to block any unreasonable values.
PiperOrigin-RevId: 483459711
Change-Id: I14efadbadaf9244a2462f377b515147bda651c89
|
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 482905442
Change-Id: Ic3a1e62f8a17efee5508d94835635aa489940f2d
|
| |
| |
| |
| |
| |
| | |
Bug: chromium:1292951
PiperOrigin-RevId: 482767615
Change-Id: Ia1e812fa7bde8753b17046ed325542ad41f30f9b
|
| |
| |
| |
| |
| |
| | |
Bug: chromium:1292951
PiperOrigin-RevId: 482287305
Change-Id: I896033c7c8b2645eacab974c4364c6ba66d38cb6
|
| |
| |
| |
| |
| |
| | |
Bug: chromium:1292951
PiperOrigin-RevId: 482021281
Change-Id: I01c25dcb2dae82fcee25da00aefec4484f7c409d
|
| |
| |
| |
| |
| |
| |
| | |
count().
PiperOrigin-RevId: 481979737
Change-Id: I69f53665b0463a7d8d80f2a3feedfdd95d32b012
|
| |
| |
| |
| |
| |
| |
| | |
it to OSS.
PiperOrigin-RevId: 481865072
Change-Id: I46364ec07df6aaff25911f8bd9e40dfee6c60626
|
| |
| |
| |
| |
| |
| | |
Bug: chromium:1292951
PiperOrigin-RevId: 481757795
Change-Id: I03c808222c6c4d3d7052576ab4b36141e5f1ebbc
|
| |
| |
| |
| |
| |
| |
| | |
The SetLogtostderr and SetAlsologtostderr tests are setting flags that cause the stderrthreshold global value to be out of sync with the stderrthreshold flag. As a result, it is not currently possible to remove order dependency with these existing tests.
PiperOrigin-RevId: 481731395
Change-Id: Ie992520982f2e69821d1d1b660e3326bf745ef0d
|
| |
| |
| |
| |
| |
| |
| |
| | |
btree iterators.
Note: btree_iterator::operator- is still O(N) because in the worst case (end()-begin()), we will have at least one operation per node in the tree, and there are at least N/M nodes, where M (a constant) is the maximum number of values per node.
PiperOrigin-RevId: 481716874
Change-Id: Ic0225b7509208ed96b75a2dc626d2aa4a24f4946
|
|\ \
| | |
| | |
| | |
| | | |
PiperOrigin-RevId: 481654034
Change-Id: I8cb2ba51fec831a24a56e62022e210191e732687
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
strings.
PiperOrigin-RevId: 481568970
Change-Id: Icb132348f62fed4c0168aac4963b3313a060890b
|
|/ /
| |
| |
| |
| | |
This corrects the generated .pc files, so these libs match the other libs
already included there.
|
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 481192073
Change-Id: I1e3296f6be4ddf73bd5c7164f4673e97a0c2c408
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
absl::Substitute.
We are also moving some internals into an internal header.
`HasAbslStringify` was not previously in an internal namespace but was intended
to be and has now been moved to an internal namespace. This is in adherence to
our compatibility guidelines which wave requirements for APIs within their
first 30 days of public release (See https://abseil.io/about/compatibility for
details).
PiperOrigin-RevId: 481190705
Change-Id: I4c0c348f269ea8d76ea3d4bd5a2c41cce475dc04
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Addresses failures with the following, in some files:
-Wshorten-64-to-32
-Wimplicit-int-conversion
-Wsign-compare
-Wsign-conversion
-Wtautological-unsigned-zero-compare
(This specific CL enables these warnings and fixes the remaining known issues.)
Bug: chromium:1292951
PiperOrigin-RevId: 480981210
Change-Id: I92d5023c6833e24d6aa29b10d433116329972f41
|
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 480945608
Change-Id: I3e90a105c793deee02fbef322946bf7d5340dc78
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This moves inlined code around a bit without changing anything bar the names of things. The purpose for all this is that it greatly simplifies the process of adding memory poisining to Cord / InlineData. InlineData can have scoped poison / unpoison regions around the interface, calling into rep for the 'real code'. I.e.:
Rep::as_chars() { return &inline_data[1]; }
InlineData::as_chars() {
Unpoisoned self(this);
return rep_.as_chars();
}
Likewise, it greatly simplifies intercepting the code for constructors, copy constructors and operator= logic.
PiperOrigin-RevId: 480893031
Change-Id: I050c88caff2315939d95a0361ae20528be36a96b
|
| |
| |
| |
| |
| |
| |
| |
| | |
Those have been exported by accident and are using internal machinery to
implement verbose logging.
PiperOrigin-RevId: 480815356
Change-Id: I84f6b6dac562cb27634d6538023eda66bed9a7f8
|
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 480664184
Change-Id: Id26fd22ae877ef48e5fa51d26c506a33b1473358
|
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 480601268
Change-Id: I5a639da57b79ae600387c81e662d5c1542b2bf99
|
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 480511524
Change-Id: I73945b1150a2e2e75774684fb8e7364f9c1290a7
|
| |
| |
| |
| |
| |
| |
| | |
AnyInvocable<R(...)&&>::operator()&& by producing an error in debug mode, and clarifies that the behavior is undefined in the general case.
PiperOrigin-RevId: 480392976
Change-Id: I2d4c6f213fa7c8747f125c9735272a8e47b9214b
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
checking but can happen for incorrect formats parsed via ParsedFormat::New.
Specifically, if a user were to add length modifiers with 'v', for example the
incorrect format string "%hv", the ParsedFormat would incorrectly be allowed.
PiperOrigin-RevId: 480183817
Change-Id: I8510c13189fdf807cdaa7f2e1b7ed9fba2aaefb9
|
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 480166410
Change-Id: Ie915e98747ffda0d1f0e5a72383f5dd9fc940970
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
dependency cycle
Also renames `_target_compile_features_if_available` CMake function to
`_absl_target_compile_features_if_available` since CMake's function
namespace is global.
The dependency cycle can occur if absl is configured with test helpers
enabled, and googletest is configured to use absl.
In the case that both projects are being built from source via
FetchContent with OVERRIDE_FIND_PACKAGE, depending on the order in
which the two projects are added to the build, the check_target calls
may fail even though the build would have otherwise succeeded.
The existing `check_target` calls seem to have been originally added
to detect missing gtest targets when the `GTest::` prefix was not yet
in use. For target names without "::", CMake does not warn if they
are undefined, and just assumes they refer to system library names.
However, CMake does fail during build generation if a target name with
"::" is missing; thus the check_taget calls are redundant.
PiperOrigin-RevId: 480140797
Change-Id: Ic51631e4a36dd8b6f569ad6424bea15a4af0b875
|
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 479667897
Change-Id: I6085df8bfcfb009806230f8d71b576a1371a4d1f
|
| |
| |
| |
| |
| |
| |
| | |
spurious -Wdynamic-class-memaccess errors in the presence of other compilation errors.
PiperOrigin-RevId: 479625866
Change-Id: Ia10ad35a2f58ffb3f36f996d357d5e126b181e1c
|
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 479614832
Change-Id: I440d145172c93cc4043aeda36898877a331ed5ff
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Addresses failures with the following, in some files:
-Wshorten-64-to-32
-Wimplicit-int-conversion
-Wsign-compare
-Wsign-conversion
-Wtautological-unsigned-zero-compare
(This specific CL focuses on the logging facility.)
Bug: chromium:1292951
PiperOrigin-RevId: 479384741
Change-Id: Id450438ea3781ce25137366ca16757e810020ad4
|
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 479325483
Change-Id: I9c4384173ce996818e0cf749c0fc465d6e9aaf8c
|
|\ \
| | |
| | |
| | |
| | | |
PiperOrigin-RevId: 479321649
Change-Id: Icc3eba76fc17272fb1e9b1da2216394971a3d3ae
|
|\ \ \
| | | |
| | | |
| | | |
| | | | |
PiperOrigin-RevId: 479310550
Change-Id: Id42c33f58d4d0bbdf131a807540cff212f3a6bc8
|
| | | | |
|
| |\ \ \
| |/ / /
|/| | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This is an immutable view type, and the viewed data have a very limited lifetime. Since it's immutable and has no public constructor, there's no way to repoint one at a longer-lived copy of the data.
PiperOrigin-RevId: 479089273
Change-Id: I2ea70878edc45fa1774c8fd26dee3a1b726d8b4a
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Such sinks must define ADL-callable `AbslFormatFlush()`. It can just forward to
`Append()`.
PiperOrigin-RevId: 479043790
Change-Id: I5d7d80ca1e17adf03b77726df8a52e2b4e9196ce
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Fixes -wunused-variable warning
PiperOrigin-RevId: 478886333
Change-Id: Ib84def2ddaf6a6860606e78603c2c25865ce2814
|
| | | |
| | | |
| | | |
| | | |
| | | | |
PiperOrigin-RevId: 478869244
Change-Id: Id16eb1e5036e95a5e2a990a647f1f7090129a009
|
| | | | |
|
| | | | |
|
| |/ /
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If you compile with clang 15+, the uses of trivially destructible and
assignable are deprecated. This sets this configuration correctly as the
ifdef to fix the build.
Fixes https://github.com/abseil/abseil-cpp/issues/1201
Related https://github.com/abseil/abseil-cpp/pull/1277
|
| | |
| | |
| | |
| | |
| | | |
PiperOrigin-RevId: 478668020
Change-Id: Iee79011bf7154e83ad862e7bf6e7a76dd337ec06
|
| |/
|/|
| |
| |
| |
| | |
Class `Allocation` is not initialized and I will get a compile error like this.
```
error: ‘worklist.absl::lts_20220623::InlinedVector<absl::lts_20220623::cord_internal::CordRep*, 2, std::allocator<absl::lts_20220623::cord_internal::CordRep*> >::storage_.absl::lts_20220623::inlined_vector_internal::Storage<absl::lts_20220623::cord_internal::CordRep*, 2, std::allocator<absl::lts_20220623::cord_internal::CordRep*> >::data_.absl::lts_20220623::inlined_vector_internal::Storage<absl::lts_20220623::cord_internal::CordRep*, 2, std::allocator<absl::lts_20220623::cord_internal::CordRep*> >::Data::allocated.absl::lts_20220623::inlined_vector_internal::Storage<absl::lts_20220623::cord_internal::CordRep*, 2, std::allocator<absl::lts_20220623::cord_internal::CordRep*> >::Allocated::allocated_capacity’ may be used uninitialized [-Werror=maybe-uninitialized]
```
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
sizeof(kPower10ExponentTable) = 651 * sizeof(int16_t) = 1302 bytes.
Their equivalence can be confirmed by this test program:
```
const int minIncl = -342;
const int maxExcl = 309;
const int kPower10ExponentTable[] = { etc };
int Power10Exponent(int n) {
return kPower10ExponentTable[n - minIncl];
}
int main(int argc, char** argv) {
for (int n = minIncl; n < maxExcl; n++) {
int formula = (217706 * n >> 16) - 63;
int table = Power10Exponent(n);
if (formula != table) {
return 1;
}
}
return 0;
}
```
Tested by atod_manual_test over the parse-number-fxx-test-data test
cases, with and without manually disabling the EiselLemire code path,
noting that changing the magic 217706 value causes test failures.
PiperOrigin-RevId: 478646550
Change-Id: Icaaf106f9aa36e2de057f3bc9aeddc3ae0efade6
|