)]}'
{
  "commit": "845ca10dd089b4e48f0a79bad005fb30eb77584e",
  "tree": "18d8041935c716ea293399136f769dafdbd8614d",
  "parents": [
    "3cbbe9fd1feaf3264f745fccb0bf5f62c583078f"
  ],
  "author": {
    "name": "Paolo Bonzini",
    "email": "pbonzini@redhat.com",
    "time": "Wed Jul 09 11:53:01 2014 +0200"
  },
  "committer": {
    "name": "Stefan Hajnoczi",
    "email": "stefanha@redhat.com",
    "time": "Fri Aug 29 10:46:58 2014 +0100"
  },
  "message": "AioContext: take bottom halves into account when computing aio_poll timeout\n\nRight now, QEMU invokes aio_bh_poll before the \"poll\" phase\nof aio_poll.  It is simpler to do it afterwards and skip the\n\"poll\" phase altogether when the OS-dependent parts of AioContext\nare invoked from GSource.  This way, AioContext behaves more\nsimilarly when used as a GSource vs. when used as stand-alone.\n\nAs a start, take bottom halves into account when computing the\npoll timeout.  If a bottom half is ready, do a non-blocking\npoll.  As a side effect, this makes idle bottom halves work\nwith aio_poll; an improvement, but not really an important\none since they are deprecated.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\nSigned-off-by: Stefan Hajnoczi \u003cstefanha@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2eada2e0499a4e15ecd02a9c1d5d4467a9920641",
      "old_mode": 33188,
      "old_path": "aio-posix.c",
      "new_id": "55706f8205f50bdc1f53934b5af4a7621cf4f4ae",
      "new_mode": 33188,
      "new_path": "aio-posix.c"
    },
    {
      "type": "modify",
      "old_id": "c12f61e97d73c6872803fd40bd3dc67962de717b",
      "old_mode": 33188,
      "old_path": "aio-win32.c",
      "new_id": "fe7ee5bb227ad5aa7cf9d937f6c6de970ff3e796",
      "new_mode": 33188,
      "new_path": "aio-win32.c"
    },
    {
      "type": "modify",
      "old_id": "34af0b25ca3b10ad741ffb237e349014be87f676",
      "old_mode": 33188,
      "old_path": "async.c",
      "new_id": "09e09c652680b945ca7e2c476c1a18d95e081712",
      "new_mode": 33188,
      "new_path": "async.c"
    },
    {
      "type": "modify",
      "old_id": "c23de3cd1f9e75946858496212cb62faf5f6ce26",
      "old_mode": 33188,
      "old_path": "include/block/aio.h",
      "new_id": "05b531ca25def69212a23b648d900ed83e3b0119",
      "new_mode": 33188,
      "new_path": "include/block/aio.h"
    }
  ]
}
