1. 28 Oct, 2022 1 commit
  2. 27 Oct, 2022 2 commits
  3. 26 Oct, 2022 2 commits
  4. 25 Oct, 2022 2 commits
  5. 24 Oct, 2022 1 commit
    • Mutex: Fix stall on single-core systems · b3e64c41
      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
      Abseil Team committed
  6. 21 Oct, 2022 2 commits
  7. 19 Oct, 2022 1 commit
  8. 18 Oct, 2022 3 commits
  9. 17 Oct, 2022 5 commits
  10. 15 Oct, 2022 1 commit
  11. 14 Oct, 2022 2 commits
  12. 13 Oct, 2022 4 commits
    • Fix "unsafe narrowing" warnings in absl, 12/12. · f073fe8e
      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
      Abseil Team committed
    • Revert change to internal 'Rep', this causes issues for gdb · cbaba1a9
      PiperOrigin-RevId: 480945608
      Change-Id: I3e90a105c793deee02fbef322946bf7d5340dc78
      Martijn Vels committed
    • Reorganize InlineData into an inner Rep structure. · 3af3e638
      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
      Martijn Vels committed
    • Remove internal `VLOG_xxx` macros · fbe46601
      Those have been exported by accident and are using internal machinery to
      implement verbose logging.
      
      PiperOrigin-RevId: 480815356
      Change-Id: I84f6b6dac562cb27634d6538023eda66bed9a7f8
      Christian Blichmann committed
  13. 12 Oct, 2022 3 commits
  14. 11 Oct, 2022 1 commit
  15. 10 Oct, 2022 3 commits
    • Fix a bug in StrFormat. This issue would have been caught by any compile-time · 845610e8
      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
      Andy Soffer committed
    • Adds documentation for stringification extension · a0b5e327
      PiperOrigin-RevId: 480166410
      Change-Id: Ie915e98747ffda0d1f0e5a72383f5dd9fc940970
      Abseil Team committed
    • CMake: Remove check_target calls which can be problematic in case of dependency cycle · 2ed6963f
      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
      Abseil Team committed
  16. 07 Oct, 2022 3 commits
  17. 06 Oct, 2022 4 commits