)]}'
{
  "commit": "2df16c542850e24b395c01c30a252732f29c3529",
  "tree": "d7c42010ff1a64675bbb584755ece5208a04a100",
  "parents": [
    "cb63920dc8ca35000045817776f8a2b10903819d"
  ],
  "author": {
    "name": "Barret Rhoden",
    "email": "brho@cs.berkeley.edu",
    "time": "Wed Jan 28 17:04:05 2015 -0500"
  },
  "committer": {
    "name": "Barret Rhoden",
    "email": "brho@cs.berkeley.edu",
    "time": "Tue Feb 03 10:12:31 2015 -0500"
  },
  "message": "kthread_usleep()\n\nIt\u0027s the guts of what sys_block did: blocks a kthread for X usec.  The classic\nissue is where we run the alarm handler and where to restart the kthread.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8b24dff778cd4560a06ce558d2f994b8755d5b0a",
      "old_mode": 33188,
      "old_path": "kern/include/kthread.h",
      "new_id": "e55a956f89e87072a4b518fbf8a3d7379d10b0b2",
      "new_mode": 33188,
      "new_path": "kern/include/kthread.h"
    },
    {
      "type": "modify",
      "old_id": "ef173947575446f1c40a2a9b90ffa0844b8f67d2",
      "old_mode": 33188,
      "old_path": "kern/src/kthread.c",
      "new_id": "8dbc0b69fff02f78522f79f842980c14b2251e7b",
      "new_mode": 33188,
      "new_path": "kern/src/kthread.c"
    },
    {
      "type": "modify",
      "old_id": "2be096372c3f46b6702aa2ee9bab2c995526ebfd",
      "old_mode": 33188,
      "old_path": "kern/src/syscall.c",
      "new_id": "65226828e53f6daed11553e09a993edce304ff9c",
      "new_mode": 33188,
      "new_path": "kern/src/syscall.c"
    }
  ]
}
