1. 30 Aug, 2023 2 commits
    • Add missing #include options.h in optimization.h. · 99a3a6ae
      options.h was already included indirectly from config.h. This CL is just to include what you use.
      
      PiperOrigin-RevId: 561376910
      Change-Id: I5b96b2aedc1e02eddc049f5bf0e6faa91799930d
      Abseil Team committed
    • absl: fix a priority bug in CondVar wait morphing · b06ab1f3
      Enqueue updates priority of the queued thread.
      It was assumed that the queued thread is the current thread.
      But it's not the case in CondVar wait morhping,
      where we requeue an existing CondVar waiter on the Mutex.
      As the result one thread can falsely get priority of another thread.
      
      Fix this by not updating priority in this case.
      And make the assumption explicit and checked.
      
      PiperOrigin-RevId: 561249402
      Change-Id: I9476c047757090b893a88a2839b795b85fe220ad
      Abseil Team committed
  2. 29 Aug, 2023 6 commits
  3. 28 Aug, 2023 1 commit
    • Implement ABSL_ATTRIBUTE_PURE_FUNCTION and ABSL_ATTRIBUTE_CONST_FUNCTION · 1d83ac71
      Pure functions have no effects except to return a value, and their
      return value depends only on the parameters and global
      variables. Functions of this kind can be subject to data flow analysis
      and might be eliminated. In practice, this means that repeated calls
      to the same function with the same arguments may be optimized away and
      only evaluated once.
      
      Const functions are similar to pure functions, but may not depend on
      global variables at all.
      
      It is an error not to use the result of a function with one of these
      attributes, since these functions have no other visible effects.
      
      Since some Abseil functions are tagged with these attributes, this is
      potentially a breaking change for code that doesn't use the result of
      these functions.
      
      For example, absl::Minutes() is tagged with
      ABSL_ATTRIBUTE_CONST_FUNCTION.  If, for example, the result of
      absl::Minutes(n) is unused, some compilers with issue a warning or
      error. If this is the case, it is likely that there is a typo in the
      code, or the call can be removed.
      PiperOrigin-RevId: 560803581
      Change-Id: Icd6f218be2cfb7226f8ab6b2d97cd960c0d3d72f
      Derek Mauro committed
  4. 25 Aug, 2023 1 commit
  5. 23 Aug, 2023 2 commits
  6. 21 Aug, 2023 2 commits
  7. 18 Aug, 2023 1 commit
    • Check CRC cordrep child nodes for nullptr. · 94b37802
      Some time ago the invariant for CRC cordreps was relaxed to allow for nullptr values on empty cords with an explicit empty CRC value. The CordzInfo analysis never checked for nullptr values causing cord sampling to crash if the sampling happened to include a (very unlikely) empty Cord value.
      
      PiperOrigin-RevId: 558202613
      Change-Id: Ib0e1eadd08047167e4df5d3035b36dca2c285a0d
      Martijn Vels committed
  8. 17 Aug, 2023 4 commits
  9. 16 Aug, 2023 3 commits
  10. 15 Aug, 2023 3 commits
  11. 14 Aug, 2023 3 commits
  12. 11 Aug, 2023 2 commits
  13. 10 Aug, 2023 4 commits
  14. 09 Aug, 2023 2 commits
  15. 08 Aug, 2023 4 commits