)]}'
{
  "commit": "d12b661c13b90813e73aeb402d240b04b2d84dec",
  "tree": "7941c4c3c9369e2dfa2b8bd3eff5cced737a20b3",
  "parents": [
    "1a88c12344b8e76a1a7a620809bcc61abafb3db6"
  ],
  "author": {
    "name": "Dan Talayco",
    "email": "dtalayco@stanford.edu",
    "time": "Sun Mar 07 22:00:46 2010 -0800"
  },
  "committer": {
    "name": "Dan Talayco",
    "email": "dtalayco@stanford.edu",
    "time": "Sun Mar 07 22:00:46 2010 -0800"
  },
  "message": "Fixed race condition\n\nIt\u0027s possible that a packet is being processed when\npoll() is called, but that it has not been enqueued yet.\nIf poll gets control, it checks the queue and then sleeps\nif it can\u0027t find it\u0027s packet.  But if the check to notify\npoll has already taken place, the intended packet is\nenqueued after poll has checked for it.  Fix this by\nextending the period that the packet processing routine\nholds the mutex.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "479a35b31d407481f449dbcff4eefafedd299592",
      "old_mode": 33188,
      "old_path": "src/python/oftest/controller.py",
      "new_id": "079f7efe0c39835bf38fb8b375afbe736557dff1",
      "new_mode": 33188,
      "new_path": "src/python/oftest/controller.py"
    }
  ]
}
