)]}'
{
  "commit": "865e03f621b01b01c413e8efc24c6a22d7a06a5e",
  "tree": "3beba342dc0fff382435cd18b7e2c2111ac57daf",
  "parents": [
    "a7c26a48fa73fb03d5e30e5f1c1f973a9b30df75"
  ],
  "author": {
    "name": "Barret Rhoden",
    "email": "brho@cs.berkeley.edu",
    "time": "Thu Jul 14 10:54:04 2016 -0400"
  },
  "committer": {
    "name": "Barret Rhoden",
    "email": "brho@cs.berkeley.edu",
    "time": "Tue Jul 19 11:43:10 2016 -0400"
  },
  "message": "Remove the alarm-with-no-func use case\n\nThe old version allowed you to just block on a semaphore if you passed \u00270\u0027\nfor the function.  No one was using it, and it complicated the\nimplementation.  Its functionality has been superceded by functions like\nkthread_usleep().\n\nSigned-off-by: Barret Rhoden \u003cbrho@cs.berkeley.edu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2b62360ded89030460499cc140b86d63184953e2",
      "old_mode": 33188,
      "old_path": "kern/include/alarm.h",
      "new_id": "b0bb52c48287ab5d995fd3f24b1ed7aabac7cb8a",
      "new_mode": 33188,
      "new_path": "kern/include/alarm.h"
    },
    {
      "type": "modify",
      "old_id": "1fbf7d2aa1261023d371ce2b02a5e980c82f3316",
      "old_mode": 33188,
      "old_path": "kern/src/alarm.c",
      "new_id": "df1efbae8da0519b94b21b7865dbee8c52169155",
      "new_mode": 33188,
      "new_path": "kern/src/alarm.c"
    }
  ]
}
