)]}'
{
  "commit": "a5938f71fbc704c85979121bb9e37d5d636ef20d",
  "tree": "b621024858993dec18d3d183c35b59c99ca28ec3",
  "parents": [
    "eca6caf673452c8ec940e2acf5e46d0631fb72bf"
  ],
  "author": {
    "name": "hathach",
    "email": "thach@tinyusb.org",
    "time": "Thu Aug 27 15:26:43 2026 +0700"
  },
  "committer": {
    "name": "hathach",
    "email": "thach@tinyusb.org",
    "time": "Fri Aug 28 14:18:41 2026 +0700"
  },
  "message": "test/hil: run the printer write in a child, like the read\n\ntest_device_printer_to_cdc opened /dev/usb/lp* on the worker itself and let\nhil_util.bounded_open abandon a thread when the open blocked. usblp allows one\nopener -- usblp_open() returns -EBUSY while usblp-\u003eused (v6.12.96 usblp.c) --\nso the abandoned thread\u0027s fd poisoned the node for every later test that worker\nran. The read half already avoided this by forking; the write half now does too,\nvia the same run_alongside, and a killed child takes its fd with it.\n\nThis removes the only production caller of bounded_open.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "233627ec79959e56a6fea2c817a7b480fda589af",
      "old_mode": 33261,
      "old_path": "test/hil/hil_test.py",
      "new_id": "51c4667e6484ab748323401793a164a2a901bf2b",
      "new_mode": 33261,
      "new_path": "test/hil/hil_test.py"
    },
    {
      "type": "modify",
      "old_id": "6da65543fca122b31e0d1ace1f2e681ca6a98e03",
      "old_mode": 33188,
      "old_path": "test/hil/test/test_hil_bounded.py",
      "new_id": "0934a73c12e65a91ecbf3d1f07084e8e21fde964",
      "new_mode": 33188,
      "new_path": "test/hil/test/test_hil_bounded.py"
    }
  ]
}
