)]}'
{
  "commit": "e2126652a3a1e08724a54091793bb29a79d31014",
  "tree": "a931f598a6a2dcd7bc449ca7167799a18b0b493d",
  "parents": [
    "9a27d0111d5cf88c6b9409261707a5d7d50aaa64"
  ],
  "author": {
    "name": "David \u0027Digit\u0027 Turner",
    "email": "digit@google.com",
    "time": "Wed Sep 05 10:35:06 2012 +0200"
  },
  "committer": {
    "name": "gerrit code review",
    "email": "noreply-gerritcodereview@google.com",
    "time": "Wed Sep 05 11:38:41 2012 -0700"
  },
  "message": "Make \"repo sync -j\u003ccount\u003e\" stop properly on Ctrl-C.\n\nThe threaded \u0027repo sync\u0027 implementation would very often freeze the\nprocess when interrupted by the user with Ctrl-C. The only solution\nbeing to kill -9 the process explicitly from another terminal.\n\nThe reason for this is best explained here:\n\nhttp://snakesthatbite.blogspot.fr/2010/09/cpython-threading-interrupting.html\n\nThis patch makes all helper sync threads \u0027daemon\u0027, which allows the\nprocess to terminate immediately on Ctrl-C.\n\nNote that this will forcefully kill all threads in case of interruption; this\nis generally a bad thing, but:\n\n  1/ This is equivalent to calling kill -9 in another terminal, which\n     is the _only_ thing that can currently stop the process.\n\n  2/ There doesn\u0027t seem to be a way to tell the worker threads to\n     gently stop when they are in a blocking operation anyway (even\n     in the non-threaded case).\n\n+ Do the same for \"repo status -j\u003ccount\u003e\".\n\nChange-Id: Ieaf45b0eacee36f35427f8edafd87415c2aa7be4\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "69e2dbfc20ca3c5fe5dd67ab7a500237369509f3",
      "old_mode": 33188,
      "old_path": "subcmds/status.py",
      "new_id": "75d68ebc22fff688a0df0eb589908b0853db227a",
      "new_mode": 33188,
      "new_path": "subcmds/status.py"
    },
    {
      "type": "modify",
      "old_id": "bfe146b6147df5ac7739b1e46fdb707e8c4403bc",
      "old_mode": 33188,
      "old_path": "subcmds/sync.py",
      "new_id": "595a35aa9523b1a596e2f3295f1435587f25e1b8",
      "new_mode": 33188,
      "new_path": "subcmds/sync.py"
    }
  ]
}
