)]}'
{
  "commit": "b9980dd454cf1849721d81b201173f9ced53f6bc",
  "tree": "90ef505a1dbe55a4aa8d28c449debee7dd4ce71c",
  "parents": [
    "38afe317694fcc11fa9f4b27bd930023719cf699"
  ],
  "author": {
    "name": "Abseil Team",
    "email": "absl-team@google.com",
    "time": "Fri Sep 08 04:53:27 2023 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Fri Sep 08 04:54:27 2023 -0700"
  },
  "message": "absl: remove known_false condition in Mutex code\n\nChecking known_false condition only causes slow down because:\n1. We already built skip list with equivalent conditions\n(and keep improving it on every Skip call). And when we built\nthe skip list, we used more capable GuaranteedEqual function\n(it does not just check for equality of pointers,\nbut for also for equality of function/arg).\n\n2. Condition pointer are rarely equal even for equivalent conditions\nbecuase temp Condition objects are usually created on the stack.\nWe could call GuaranteedEqual(cond, known_false) instead of cond \u003d\u003d known_false,\nbut that slows down things even more (see point 1).\n\nSo remove the known_false optimization.\nBenchmark results for this and the previous change:\n\nname                        old cpu/op   new cpu/op   delta\nBM_ConditionWaiters/0/1     36.0ns ± 0%  34.9ns ± 0%   -3.02%  (p\u003d0.008 n\u003d5+5)\nBM_ConditionWaiters/1/1     36.0ns ± 0%  34.9ns ± 0%   -2.98%  (p\u003d0.008 n\u003d5+5)\nBM_ConditionWaiters/2/1     35.9ns ± 0%  34.9ns ± 0%   -3.03%  (p\u003d0.016 n\u003d5+4)\nBM_ConditionWaiters/0/8     55.5ns ± 5%  49.8ns ± 3%  -10.33%  (p\u003d0.008 n\u003d5+5)\nBM_ConditionWaiters/1/8     36.2ns ± 0%  35.2ns ± 0%   -2.90%  (p\u003d0.016 n\u003d5+4)\nBM_ConditionWaiters/2/8     53.2ns ± 7%  48.3ns ± 7%     ~     (p\u003d0.056 n\u003d5+5)\nBM_ConditionWaiters/0/64     295ns ± 1%   254ns ± 2%  -13.73%  (p\u003d0.008 n\u003d5+5)\nBM_ConditionWaiters/1/64    36.2ns ± 0%  35.2ns ± 0%   -2.85%  (p\u003d0.008 n\u003d5+5)\nBM_ConditionWaiters/2/64     290ns ± 6%   250ns ± 4%  -13.68%  (p\u003d0.008 n\u003d5+5)\nBM_ConditionWaiters/0/512   5.50µs ±12%  4.99µs ± 8%     ~     (p\u003d0.056 n\u003d5+5)\nBM_ConditionWaiters/1/512   36.7ns ± 3%  35.2ns ± 0%   -4.10%  (p\u003d0.008 n\u003d5+5)\nBM_ConditionWaiters/2/512   4.44µs ±13%  4.01µs ± 3%   -9.74%  (p\u003d0.008 n\u003d5+5)\nBM_ConditionWaiters/0/4096   104µs ± 6%   101µs ± 3%     ~     (p\u003d0.548 n\u003d5+5)\nBM_ConditionWaiters/1/4096  36.2ns ± 0%  35.1ns ± 0%   -3.03%  (p\u003d0.008 n\u003d5+5)\nBM_ConditionWaiters/2/4096  90.4µs ± 5%  85.3µs ± 7%     ~     (p\u003d0.222 n\u003d5+5)\nBM_ConditionWaiters/0/8192   384µs ± 5%   367µs ± 7%     ~     (p\u003d0.222 n\u003d5+5)\nBM_ConditionWaiters/1/8192  36.2ns ± 0%  35.2ns ± 0%   -2.84%  (p\u003d0.008 n\u003d5+5)\nBM_ConditionWaiters/2/8192   363µs ± 3%   316µs ± 7%  -12.84%  (p\u003d0.008 n\u003d5+5)\n\nPiperOrigin-RevId: 563717887\nChange-Id: I9a62670628510d764a4f2f88a047abb8f85009e2\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9a25570c2315e400c65c7ee5f91caa8a70d740c4",
      "old_mode": 33188,
      "old_path": "absl/synchronization/mutex.cc",
      "new_id": "dc34d8a94ab0a2c0f31b69e0bc0feda768d210b3",
      "new_mode": 33188,
      "new_path": "absl/synchronization/mutex.cc"
    }
  ]
}
