)]}'
{
  "commit": "ba6b8bcb7ea204e65a3deec3be81aacc9f4b6d5a",
  "tree": "5f9973529ab12e853b36172846c8f26b49ced300",
  "parents": [
    "9576ad4b8f94698aeba5218caf9e9e1f28a6f44d"
  ],
  "author": {
    "name": "Chris Dickens",
    "email": "christopher.a.dickens@gmail.com",
    "time": "Mon Aug 10 19:19:21 2020 -0700"
  },
  "committer": {
    "name": "Chris Dickens",
    "email": "christopher.a.dickens@gmail.com",
    "time": "Mon Aug 10 19:19:21 2020 -0700"
  },
  "message": "Windows: Use I/O completion ports for transfers\n\nAs a first step in removing the Windows poll() emulation, switch the\ntransfers to use an I/O completion port. A dedicated per-context thread\nwill wait on the I/O completion port and report transfer completions\nusing usbi_signal_transfer_completion(). This enables the complete\nremoval of the handle_events() function for the Windows backend and\nremoves the notion of one \"file descriptor\" per transfer.\n\nSigned-off-by: Chris Dickens \u003cchristopher.a.dickens@gmail.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bf9f7b7d4d7f573edb229db0d1585cb35b290e2f",
      "old_mode": 33188,
      "old_path": "libusb/os/poll_windows.c",
      "new_id": "c2bc105a06f1c314c6ccd52b79c3d00930612183",
      "new_mode": 33188,
      "new_path": "libusb/os/poll_windows.c"
    },
    {
      "type": "modify",
      "old_id": "df1781b1dc7b2e3f1e4735df43c764419b99c054",
      "old_mode": 33188,
      "old_path": "libusb/os/poll_windows.h",
      "new_id": "14a5b27794cab35052872fc3daabcf2389163d48",
      "new_mode": 33188,
      "new_path": "libusb/os/poll_windows.h"
    },
    {
      "type": "modify",
      "old_id": "e2f91163d05936a8bce73c5b7fe075a6c9f4aa85",
      "old_mode": 33188,
      "old_path": "libusb/os/windows_common.c",
      "new_id": "940663215a8336b3e567379e5736a4176d81e33d",
      "new_mode": 33188,
      "new_path": "libusb/os/windows_common.c"
    },
    {
      "type": "modify",
      "old_id": "00cdda33083cd66770ae874ef78c712db7b91f12",
      "old_mode": 33188,
      "old_path": "libusb/os/windows_common.h",
      "new_id": "3de4f023e8b301f56df4e8332779759546a0399c",
      "new_mode": 33188,
      "new_path": "libusb/os/windows_common.h"
    },
    {
      "type": "modify",
      "old_id": "d9e2a9cc335dd8f8e79557cd430499e8b97a0d06",
      "old_mode": 33188,
      "old_path": "libusb/os/windows_usbdk.c",
      "new_id": "cdfbb17108bbbb86bc34358508478a716c97527f",
      "new_mode": 33188,
      "new_path": "libusb/os/windows_usbdk.c"
    },
    {
      "type": "modify",
      "old_id": "7ed9de5faf61d9eb87a0ddc028f06459b580f95c",
      "old_mode": 33188,
      "old_path": "libusb/os/windows_winusb.c",
      "new_id": "04dda4adb10544bb5eb57dcffe499ec5d63b5bca",
      "new_mode": 33188,
      "new_path": "libusb/os/windows_winusb.c"
    },
    {
      "type": "modify",
      "old_id": "d21e1b94e14d532c589f3899502920c5632735aa",
      "old_mode": 33188,
      "old_path": "libusb/version_nano.h",
      "new_id": "e7b7f080065e60187df78c5634258dcb2612be92",
      "new_mode": 33188,
      "new_path": "libusb/version_nano.h"
    }
  ]
}
