)]}'
{
  "commit": "c7a98d8360cf03f977625a65e8dd637d6b2ab18b",
  "tree": "043d571f69c08cc1211dbd9d85821ca488160a38",
  "parents": [
    "553cc842a3fea3594158c8314a577c2b916bf45d"
  ],
  "author": {
    "name": "Josh Bleecher Snyder",
    "email": "josharian@gmail.com",
    "time": "Mon Jul 07 19:12:53 2025 -0700"
  },
  "committer": {
    "name": "Josh Bleecher Snyder",
    "email": "josharian@gmail.com",
    "time": "Mon Jul 07 19:13:43 2025 -0700"
  },
  "message": "sketch/loop: fix concurrency handling in port monitor shutdown\n\nThe graceful shutdown code assumes it can take the pm.mu lock.\nMake the Stop code oblige.\n\nThis fixes the issue at hand, but the remaining code still gives\nme the heebie jeebies--for example, after calling Stop, there could\nstill be notifications that come in.\n\nSketch really shouldn\u0027t write concurrent code.\n\nThis will work well enough, I guess, until it doesn\u0027t,\nat which point we\u0027ll have to carefully fix up the rats nest.\n\n\nBefore:\n\n2m10s: 1157 runs so far, 36 failures (3.11%)\n\nAfter:\n\n16m45s: 12484 runs so far, 0 failures\n\n\nFixes boldsoftware/bold#446 enough for now\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5dbe617ba84c5ae032a90b45a7ef3b2dda22c882",
      "old_mode": 33188,
      "old_path": "loop/port_monitor.go",
      "new_id": "7eaa98f801085813751c3e144103f0004fa34352",
      "new_mode": 33188,
      "new_path": "loop/port_monitor.go"
    }
  ]
}
