)]}'
{
  "commit": "269d74fdc39a612da8f627bf97628c68d25a16ab",
  "tree": "8add14e852e83369123ee576a995b28f006800d4",
  "parents": [
    "a94feb380df46bdfc742257648c9825e8e7b17c0"
  ],
  "author": {
    "name": "paul",
    "email": "paul",
    "time": "Mon May 23 13:42:46 2005 +0000"
  },
  "committer": {
    "name": "paul",
    "email": "paul",
    "time": "Mon May 23 13:42:46 2005 +0000"
  },
  "message": "2005-05-23 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* workqueue.h: Add a WQ_QUEUE_BLOCKED item_status return code,\n\t  to allow a queue function to indicate the queue is not\n\t  ready/blocked - rather than any problem with the item at hand.\n\t  Add a notion of being able to \u0027plug\u0027 and \u0027unplug\u0027 a queue.\n\t  Add helpers to plug/unplug a queue.\n\t  Add a completion callback, to be called when a queue is emptied.\n\t* workqueue.c: (work_queue_new) remove useless list_free.\n\t  (work_queue_schedule) new internal helper function to schedule\n\t  queue, if appropriate.\n\t  (work_queue_add) use work_queue_schedule\n\t  (show_work_queues) Print \u0027P\u0027 if queue is plugged.\n\t  (work_queue_plug) new API function, plug a queue - ie prevent it\n\t  from \u0027drained\u0027 / processed / scheduled.\n\t  (work_queue_unplug) unplug a queue, allowing it to be drained\n\t  / scheduled / processed again.\n\t  (work_queue_run) Add support for WQ_QUEUE_BLOCKED.\n\t  Add comment for RETRY_NOW case.\n\t  Make hysteris more aggresive in ramping up granularity, improves\n\t  performance significantly.\n\t  Add support for calling completion callback when queue is emptied,\n\t  possibly useful for knowing when to unplug a queue.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3268ab9941d3ddf3fe69ae3a6232cc2c11ae95e3",
      "old_mode": 33188,
      "old_path": "lib/ChangeLog",
      "new_id": "8e5b7c3be2560ea30924f55fce0ab90b0e5e4282",
      "new_mode": 33188,
      "new_path": "lib/ChangeLog"
    },
    {
      "type": "modify",
      "old_id": "fc61d6800cf875fa76218796394ee72349193556",
      "old_mode": 33188,
      "old_path": "lib/workqueue.c",
      "new_id": "bac413028f2247e0480eb6a8422db46aa0668c8c",
      "new_mode": 33188,
      "new_path": "lib/workqueue.c"
    },
    {
      "type": "modify",
      "old_id": "257667e25c287e1b6f802089c00ac12611799a88",
      "old_mode": 33188,
      "old_path": "lib/workqueue.h",
      "new_id": "626d8e6cb935edcb06a9cf779bb823ff360ebf38",
      "new_mode": 33188,
      "new_path": "lib/workqueue.h"
    }
  ]
}
