)]}'
{
  "log": [
    {
      "commit": "d1aea30b2ade504550f7bb7996c808b9af1c415d",
      "tree": "5510d43664f9693ccab80e9b68be854d2ce9f859",
      "parents": [
        "2bb93482a7793640205ade2f7316db5b3f5cac19"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 25 10:05:24 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 25 10:05:24 2015 -0700"
      },
      "message": "Fix POSIX timer thread naming.\n\nSpencer Low points out that we never actually set a name because the constant\npart of the string was longer than the kernel\u0027s maximum, and the kernel\nrejects long names rather than truncate.\n\nShorten the fixed part of the string while still keeping it meaningful. 9999\nPOSIX timers should be enough for any process...\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d170089\nChange-Id: Ic05f07584c1eac160743519091a540ebbf8d7eb1\n"
    },
    {
      "commit": "95f1ee235ae257802a94d7e94d476ea0aaea5cd8",
      "tree": "cf163cac0ade7c84c7c07bbffcd8f5e07201a0d4",
      "parents": [
        "447cd19681cfd0a71282c87d1b32a7757bbaba81"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Jan 13 19:53:15 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Apr 15 17:36:01 2015 -0700"
      },
      "message": "Change on handling of SIGEV_THREAD timers.\n\n1. Don\u0027t prevent calling callback when SIGEV_THREAD timers are disarmed by timer_settime.\nAs in POSIX standard: The effect of disarming or resetting a timer with pending\nexpiration notifications is unspecified. And glibc didn\u0027t prevent in this situation, so I\nthink it is fine to remove the support.\n2. Still prevent calling callback when SIGEV_THREAD timers are deleted by timer_delete.\nAs in POSIX standard: The disposition of pending signals for the deleted timer is unspecified.\nHowever, glibc handles this (although that is not perfect). And some of our tests in\ntime_test.cpp depend on this feature as described in b/18039727. so I retain the support.\n3. Fix some flaky test in time_test.cpp, and make \"time*\" test pass on bionic-unit-tests-glibcxx.\n\nBug: 18263854\n\nChange-Id: I8ced184eacdbfcf433fd81b0c69c38824beb8ebc\n"
    },
    {
      "commit": "05fc1d7050d5451aea08dc5f504d2670287b2d43",
      "tree": "fa1d81b61b303ee8ed94c511cc08b8f40ed6624b",
      "parents": [
        "43606bc1ce974e4ba42d7d2c3682ad5182e6fc96"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 28 18:02:33 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 28 19:23:11 2015 -0800"
      },
      "message": "Add missing includes.\n\nChange-Id: Ibf549266a19a67eb9158d341a69dddfb654be669\n"
    },
    {
      "commit": "62d84b19359a8ddd3df5b6293d1b05ef5281f532",
      "tree": "b614f0c9c9671eb6beaec448a7d22dc1ad44e298",
      "parents": [
        "098cf45f4e853f3c85c14af0e475bfae0839f027"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Oct 20 19:09:19 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Oct 22 13:20:39 2014 -0700"
      },
      "message": "Fix race condition in timer disarm/delete.\n\nWhen setting a repeat timer using the SIGEV_THREAD mechanism, it\u0027s possible\nthat the callback can be called after the timer is disarmed or deleted.\nThis happens because the kernel can generate signals that the timer thread\nwill continue to handle even after the timer is supposed to be off.\n\nAdd two new tests to verify that disarming/deleting doesn\u0027t continue to\ncall the callback.\n\nModify the repeat test to finish more quickly than before.\n\nRefactor the Counter implementation a bit.\n\nBug: 18039727\n\n(cherry pick from commit 0724132c3263145f2a667f453a199d313a5b3d9f)\n\nChange-Id: I135726ea4038a47920a6c511708813b1a9996c42\n"
    },
    {
      "commit": "a4831cb4a3f44b93788488db8ff9ea76613f0355",
      "tree": "eaa225c537d468307739bc48bbc86e241ada58e0",
      "parents": [
        "ea66004c4a051e40c49314d808e7359634f6c641"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 11 16:11:43 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 11 16:22:50 2014 -0700"
      },
      "message": "Add pthread_gettid_np and re-expose __get_thread for LP32.\n\nA lot of third-party code calls the private __get_thread symbol,\noften as part of a backport of bionic\u0027s pthread_rwlock implementation.\nHopefully this will go away for LP64 (since you\u0027re guaranteed the\nreal implementation there), but there are still APIs that take a tid\nand no way to convert between a pthread_t and a tid. pthread_gettid_np\nis a public API for that. To aid the transition, make __get_thread\navailable again for LP32.\n\n(cherry-pick of 27efc48814b8153c55cbcd0af5d9add824816e69.)\n\nBug: 14079438\nChange-Id: I43fabc7f1918250d31d4665ffa4ca352d0dbeac1\n"
    },
    {
      "commit": "0990d4fda898ada86e557f872f5cb7d16b138e3c",
      "tree": "43cd74258c43e23e8008c15aebdb0a3efd476f6c",
      "parents": [
        "77473e408504a7e298816b4071cd6902065b03d8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 30 09:45:40 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 30 10:06:09 2014 -0700"
      },
      "message": "Make SIGRTMIN hide the real-time signals we use internally.\n\n__SIGRTMIN will continue to tell the truth. This matches glibc\u0027s\nbehavior (as evidenced by the fact that we don\u0027t need a special case\nin the strsignal test now).\n\nChange-Id: I1abe1681d516577afa8cd39c837ef12467f68dd2\n"
    },
    {
      "commit": "473d06707bccf0dd707905dcbe74ba91c4d1e8a5",
      "tree": "4356b6200e8681c28c0b0ca07b986cb35e802e9a",
      "parents": [
        "1653ad5e08ba4cabfd4d81237e13a4952fac6194"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 01 19:07:52 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 01 19:07:52 2014 -0700"
      },
      "message": "Fix the POSIX timers fix.\n\nIf we\u0027re not going to wait for the timer threads to exit, we need\nanother way to ensure that we don\u0027t free the data they\u0027re using\nprematurely. The easiest way to ensure that is to let them free the\ndata themselves.\n\nChange-Id: Icee17c87bbcb9c3aac5868973f595d08569f33aa\n"
    },
    {
      "commit": "753ad778bc1c3aecc4cd82b8387a7dc8a9b44d34",
      "tree": "6eedabf25b6c892f6eb95b847e3100c8245dcacf",
      "parents": [
        "2cc58603d5fd68ec582984318fb3c5f8865a186f"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 20 20:47:45 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 20 20:47:45 2014 -0700"
      },
      "message": "Fix deadlock in timer_delete.\n\nIf the callback function for a timer did a timer_delete, the function\nwould never return. The problem was that the timer_delete function would try\nto wait until the timer thread has finished. Waiting for yourself to finish\ndoesn\u0027t work very well.\n\nBug: 13397340\nChange-Id: Ica123a5bafbc8660c8a4a909e5c2dead55ca429d\n"
    },
    {
      "commit": "4b558f50a42c97d461f1dede5aaaae490ea99e2e",
      "tree": "c239a686131cdda28272c961ce98febbc0c772f8",
      "parents": [
        "bef5016491eed41521f514d5c5528e2274689948"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 04 15:58:02 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 07 16:49:46 2014 -0800"
      },
      "message": "Rewrite the POSIX timer functions.\n\nThis is a much simpler implementation that lets the kernel\ndo as much as possible.\n\nCo-authored-by: Jörgen Strand \u003cjorgen.strand@sonymobile.com\u003e\nCo-authored-by: Snild Dolkow \u003csnild.dolkow@sonymobile.com\u003e\nChange-Id: Iad19f155de977667aea09410266d54e63e8a26bf\n"
    }
  ]
}
