1. 29 Jun, 2023 4 commits
  2. 28 Jun, 2023 5 commits
  3. 26 Jun, 2023 2 commits
  4. 24 Jun, 2023 1 commit
  5. 21 Jun, 2023 3 commits
  6. 20 Jun, 2023 5 commits
  7. 17 Jun, 2023 1 commit
  8. 16 Jun, 2023 3 commits
    • Use std::is_final instead of a non-portable implementation · 049aa40e
      PiperOrigin-RevId: 540928490
      Change-Id: Idf022b28ce101a948be4efd5336888a66f5eacf9
      Derek Mauro committed
    • absl: fix Mutex writer starvation related to uninit priority · cef7c4e8
      Currently when we queue the first thread, we don't init its priority.
      Subsequent queued threads init priority, but they compare it against
      the first thread priority, which is uninit. Thus the order can be wrong.
      It can lead to complete false starvation in some corner cases.
      
      On Linux the default priority is 0, which matches the uninit value,
      thus the problem is harder to spot on Linux (only possible if explicit
      thread priorities are used). But on Darwin the default priority is 31,
      thus the first thread falsely looks like lower priority than subsequently
      queued threads. The added test exposes the problem on Darwin.
      
      Always initialize the priority before queuing threads.
      
      PiperOrigin-RevId: 540814133
      Change-Id: I513ce1493a67afe77d3e92fb49000b046b42a9f2
      Abseil Team committed
    • absl: move comment in mutex.cc to where it belongs · b6a417bb
      Move the comment that relates to kMuDesig close to kMuDesig definition.
      Currently it's placed in between unrelated flags.
      
      NFC
      
      PiperOrigin-RevId: 540792401
      Change-Id: I5f6a928cd9e01664812b2a7c3d9eb087c0723d7f
      Abseil Team committed
  9. 15 Jun, 2023 3 commits
  10. 14 Jun, 2023 1 commit
  11. 13 Jun, 2023 2 commits
  12. 12 Jun, 2023 7 commits
  13. 09 Jun, 2023 3 commits
    • Optimize Cord Refcount decrement. · 1feab4ff
      Introduce kHighRefcountMask which masks off flags and the LSb of the refcount value. In the cases where this mask is used, we don't need to check the LSb because we can assume the refcount is 1 when the rest of the masked RefcountAndFlags is empty, and the LSb doesn't matter if the masked value is not empty (either it's immortal or refcount > 1). This saves an instruction and a cycle (and + cmp -> tst) https://godbolt.org/z/Kz69eqfhq
      
      PiperOrigin-RevId: 539151659
      Change-Id: I2ec7d72918f052c4b0938edd746af9d5b3052c7e
      Connal de Souza committed
    • Merge pull request #1472 from pateldeev:iv · e929ede4
      PiperOrigin-RevId: 539145188
      Change-Id: Ic8dc8112f77ca720a8871de57ee389f15693ab00
      Copybara-Service committed
    • Fix unwinding through nested signal frames on aarch64. · 2b042424
      This fixes an endless loop in the absl Arm stack unwinder where encountering a
      second signal return trampoline (as one has in nested signal frames), would restart
      unwinding at the outermost signal, resulting in an endless loop.
      
      This does not change any behavior in the non-nested signal case, so I believe
      it is safe for any stack that hasn't encountered this bug already.
      
      I would love to test this beyond the absl unwinding test cases and the
      fingerprint_test included here, but I'm at a loss for other test cases.
      
      PiperOrigin-RevId: 539113007
      Change-Id: I10037f9fa77b45cc4db61f89b9c6380ec3529113
      Abseil Team committed