)]}'
{
  "log": [
    {
      "commit": "f30a810bcea188fddc96a752f4198304444136c0",
      "tree": "714d56df20aec116f8b96360a0ffac6ed1fdfc3c",
      "parents": [
        "8fad110bfa18b962b8c6e3a25297970a0febe1f2"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 03 17:22:24 2017 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu May 04 17:15:17 2017 -0700"
      },
      "message": "Use async safe logging in signal handlers.\n\nTest: Boot on bullhead.\nTest: Ran the libbacktrace tests on bullhead.\nTest: Added a temporary log message in the signal handler, and ran the\nTest: backtrace tests.\nChange-Id: I0a6888c9f311af2c8cc7fbb4929315911bd2bb3c\n"
    },
    {
      "commit": "2d09171758b7d98c77f27e439a4caf35dd84c311",
      "tree": "817d634ba99dec2616cdefbe4bee442cedc55439",
      "parents": [
        "a684d9dad58eaac4d4833321ae92e7327057f18b"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu May 28 16:10:33 2015 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jun 01 13:51:51 2015 -0700"
      },
      "message": "Modify the code to avoid potential deadlocks.\n\nIf the signal to dump a thread is never delivered, then it\u0027s\npossible for a deadlock. The signal handler is responsible for\nunlocking and deleting the ThreadEntry created for the pid/tid\ncombination. This means if the signal is lost, the ThreadEntry\ngets stuck locked and never deleted. If a second attempt to get\na backtrace of this thread occurs, there is a deadlock.\n\nAlso, decrease the timeout from 10 seconds to 5 seconds. The original\n10 seconds was because the unwind was actually done in the signal\nhandler. Now the signal handler does nothing but copy the ucontext\nstructure and let the caller do the unwind.\n\nBug: 21086132\nChange-Id: Idc735dbf6147ec879d35bd4f034c5d227e26a98d\n"
    },
    {
      "commit": "2c43cff01d1271be451671567955158629b23670",
      "tree": "b08d199b9cc4d0b665d7dc844cadedf883d0590c",
      "parents": [
        "e29744d94df787fa83307572d90a954b1592f69b"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 26 19:18:36 2015 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Mar 31 10:51:44 2015 -0700"
      },
      "message": "Refactor the code.\n\nThe object hierarchy was confusing and convoluted. This removes\na lot of unnecessary code, and consolidates the BacktraceCurrent\nand BacktraceThread code into BacktraceCurrent.\n\nChange-Id: I01c8407d493712a48169df49dd3ff46db4a7c3ae\n"
    }
  ]
}
