)]}'
{
  "commit": "eedca4a5f72b449df035979f31785dd5eaa46e0e",
  "tree": "ca085e49078145359ca0226a17b6a4ce2116c298",
  "parents": [
    "acb5c2dfabaf8126e20d17a4d02ac183af2afc26"
  ],
  "author": {
    "name": "Hans Boehm",
    "email": "hboehm@google.com",
    "time": "Fri Feb 21 14:09:57 2020 -0800"
  },
  "committer": {
    "name": "Hans Boehm",
    "email": "hboehm@google.com",
    "time": "Fri Feb 28 23:01:51 2020 +0000"
  },
  "message": "Add more tests, spin before inflating monitors\n\nThis adds some additional tests/benchmarks to 2029-contended-monitors.\n\nModify the monitor inflation logic minimally to try pure spinning\nbefore resorting to sched_yield.\n\nBased on my testing with 2029-contended-monitors, it would be beneficial\nto more aggressively avoid lock inflation. But in the end, I couldn\u0027t\nfigure out how to do that effectively without taking more wall clock\ntime when we actually inflate a lock. That seems like a questionable\ntrade-off, so this is the low-risk alternative that simply avoids the\nclearly dubious choice to immediately spend a microsecond or so on a\nsched_yield call whenever the lock is already held.\n\nThis is somehat similar to aosp/666639, but we still try everything\nwe tried before to avoid inflation. (aosp/666639 with a much higher\nvalue of max_spins would probably be similar. I expect CpuRelax()\nthere doesn\u0027t have much impact either way. We could add it here.)\n\nBug:140590186\nTest: experimentation with 2029-contended-monitors.\nChange-Id: I58349cc2c45dd6ea16c67c3c3bffb791274eb99e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "819096039ad20a8a4076a0575543d40c7d1e69a1",
      "old_mode": 33188,
      "old_path": "runtime/monitor.cc",
      "new_id": "a581131d9337151e79db7679122d046f3ffaeb9f",
      "new_mode": 33188,
      "new_path": "runtime/monitor.cc"
    },
    {
      "type": "modify",
      "old_id": "1894ad774a0f237f3b2555d6468dd657aee01dfd",
      "old_mode": 33188,
      "old_path": "test/2029-contended-monitors/expected.txt",
      "new_id": "4fa00bcb24c069d98b63725d79d40dd3811a5bf5",
      "new_mode": 33188,
      "new_path": "test/2029-contended-monitors/expected.txt"
    },
    {
      "type": "modify",
      "old_id": "78d2ae443f9e32b672abd830a79209a3790949bf",
      "old_mode": 33188,
      "old_path": "test/2029-contended-monitors/src/Main.java",
      "new_id": "ffe8e73a7698bf4fed6dfd7913dcd28ca14d541e",
      "new_mode": 33188,
      "new_path": "test/2029-contended-monitors/src/Main.java"
    }
  ]
}
