)]}'
{
  "log": [
    {
      "commit": "8e551a6319e45dd5c8d03864f3330b45cf8551b7",
      "tree": "70eb80f79b0b24a96f4fd4fd8ed68ce3b63ff154",
      "parents": [
        "3ef36b2115d0802e668e325b59af6ef14d999e71"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Mon Mar 28 09:47:35 2011 -0700"
      },
      "committer": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Wed Apr 27 09:12:58 2011 -0700"
      },
      "message": "bionic, libthread_db x86 fixes\n\nChange-Id: I3be997f5f1f6a894a3c200d4f325cf3bfd428c66\nAuthor: James Rose \u003cjames.rose@intel.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "5c8c00a95a6cdcd74ac32dadedf0cea2b1661169",
      "tree": "fafdb4a207ac0dad61b0abd831fe2f0f97b7643b",
      "parents": [
        "be5755969d70668bbab0e0c0ed75ebd867189723"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Dec 20 15:58:06 2010 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Dec 20 15:58:06 2010 +0100"
      },
      "message": "libc: Fix the definition of SIGRTMAX\n\nAfter this change, SIGRTMAX will be set to 64 (instead of 32 currently).\nNote that this doesn\u0027t change the fact that our sigset_t is still defined\nas a 32-bit unsigned integer, so most functions that deal with this type\nwon\u0027t support real-time signals though.\n\nChange-Id: Ie1e2f97d646f1664f05a0ac9cac4a43278c3cfa8\n"
    },
    {
      "commit": "b1c9cc2f2d1b0478b07278cdef885cabf1cd2798",
      "tree": "25c4183bf8bf069e392797ed55d90ff1f4badc50",
      "parents": [
        "8939c1e1cca71151a841f5c1d47ed7004cc14d80"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Thu Sep 23 12:30:12 2010 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Thu Sep 23 12:30:12 2010 -0700"
      },
      "message": "Add memory barriers to pthread_once.\n\nThe implementation was using a double-checked locking approach that\ncould break on SMP.\n\nIn addition to the barriers I also switched to a volatile pointer.  I\ndon\u0027t think this will matter unless gcc can conclude that _normal_lock\ncan\u0027t affect *once_control, but I figured it was better to be safe.\n(It seems to have no impact whatsoever on the generated code.)\n\nBug 3022795.\n\nChange-Id: Ib91da25d57ff5bee4288526e39d457153ef6aacd\n"
    },
    {
      "commit": "e2ac89869f9b459faa22640fb1bb41e818c1dd55",
      "tree": "8f72e69139c7356c05eafe653d98ca6927802ad6",
      "parents": [
        "964a14d0dd494055d14e2b8ee35ed9394b991c28"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Thu Sep 02 13:34:53 2010 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Thu Sep 02 13:34:53 2010 -0700"
      },
      "message": "Add a memory barrier to cond var signaling.\n\nThis adds an explicit memory barrier to condition variable signaling.\nIt\u0027s a little murky as to whether it\u0027s strictly required, but it seems\nlike a wise thing to do.\n\nChange-Id: Id0faa542d61e4b8ffa775e4adf68e4d7471f4fb7\n"
    },
    {
      "commit": "4e6043a355ccc04b3e931edd7616d35ef5691278",
      "tree": "cbb6044e78c1b4619a4bccee56f257ba6400c18c",
      "parents": [
        "68bcaa4a7b12250d2582fdf59a9e331537e98be0",
        "7d1d98b97e947de22aff4c0b67eec7ae68c822ee"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jun 29 12:55:34 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 29 12:55:34 2010 -0700"
      },
      "message": "am 7d1d98b9: am a02b93bd: libc: add sanity checks to pthread_mutex_destroy()\n\nMerge commit \u00277d1d98b97e947de22aff4c0b67eec7ae68c822ee\u0027\n\n* commit \u00277d1d98b97e947de22aff4c0b67eec7ae68c822ee\u0027:\n  libc: add sanity checks to pthread_mutex_destroy()\n"
    },
    {
      "commit": "a02b93bd75a9d156117264d88069566e447397e2",
      "tree": "82f11630b57fc7a9defa24b8e2955a5614275d1c",
      "parents": [
        "0621a279adfb981ea1f0564e7fc8280cda78e043"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jun 28 14:20:22 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jun 28 14:20:22 2010 -0700"
      },
      "message": "libc: add sanity checks to pthread_mutex_destroy()\n\nChange-Id: Iddb2204fa792fa9aca5f19838926dddbb09b74a2\n"
    },
    {
      "commit": "ccc3d1eea124cbeb1ec2d711d5892db1dd4445d3",
      "tree": "80cb85b2175fb5da5eb96d980ea7cc91365581c5",
      "parents": [
        "1deef576b37b5951d1274bc63a89843a8c1d6bc4"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Mon Jun 28 11:41:16 2010 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Mon Jun 28 11:41:16 2010 -0700"
      },
      "message": "Use a recursive lock for pthread_once.\n\nbug: 2292366\nChange-Id: I9fc8b790dcfcb30ca94a0beb340d43fe5cd6c22e\n"
    },
    {
      "commit": "50ace4fec5e8cb5afcbc656a4556fa528adfd760",
      "tree": "04647e039a457f69ba48a8301bebdd605fda7fca",
      "parents": [
        "6a9b888d7c4b246f6f66360789c72b754ff85021"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jun 16 16:36:41 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jun 22 17:51:41 2010 -0700"
      },
      "message": "Remove compiler warnings when building Bionic.\n\nAlso add missing declarations to misc. functions.\nFix clearerr() implementation (previous was broken).\nHandle feature test macros like _POSIX_C_SOURCE properly.\n\nChange-Id: Icdc973a6b9d550a166fc2545f727ea837fe800c4\n"
    },
    {
      "commit": "6c8a2f2a5bc8d612ee953f528f2b5eb35983656a",
      "tree": "7dd45d3e3162220578e93a6cb7244b4209b1c7c5",
      "parents": [
        "038fbae518e904c7aba64779714a22dbeeb90887"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Jun 10 23:34:24 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jun 11 13:49:09 2010 -0700"
      },
      "message": "libc: remove cutils dependencies\n\nWe simply copy the stuff we need from cutils headers.\n\nA future patch will change cutils to include the private \u003cbionic_atomic_inline.h\u003e\n\nChange-Id: Ib6fd9a03bc9e337ce867bd606dc94c2b4438480a\n"
    },
    {
      "commit": "6304d8b21891fd0cb7b5a4c25159a3d3b1709d62",
      "tree": "8ab9c2bf6022f139b7af2eabda11846abf684171",
      "parents": [
        "a8a21488630980c1d2a2152d0ac39bd7978879e2"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jun 02 18:12:12 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jun 08 17:04:49 2010 -0700"
      },
      "message": "Use private futexes for semaphores, unless they are initialized with pshared !\u003d 0.\n\nChange-Id: I534e36a7171cd37037ae03b910ba71ea6968286d\nNote: previously, sem_init() would return an error if pshared !\u003d 0.\n"
    },
    {
      "commit": "a8a21488630980c1d2a2152d0ac39bd7978879e2",
      "tree": "aa2c3da5f3cfb2eb44933b5126984940b2c02e59",
      "parents": [
        "fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aa",
        "7b6e6fa57240466c2728d553be136f800600dd71"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jun 03 15:05:04 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jun 03 15:05:04 2010 -0700"
      },
      "message": "resolved conflicts for merge of 7b6e6fa5 to kraken\n\nChange-Id: I2b9b80a7fa32c56be2b85ff8be0d6e7ac1848afe\n"
    },
    {
      "commit": "7b6e6fa57240466c2728d553be136f800600dd71",
      "tree": "5744295128fa6b7b03377c8c7ab3c2df5af16cf5",
      "parents": [
        "8e1ee7fd01986825074ececd39e8c2a5ebc907e0",
        "f982f038329f7da7de5853c9d789ab138a4bcf16"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 03 14:39:20 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 03 14:39:20 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: Ib7fc9c6f79f9b13e2175da137005d8968ea85eaf\n"
    },
    {
      "commit": "fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aa",
      "tree": "859e86f36d6bf63ee284c65fff114bbbfdeff38f",
      "parents": [
        "4fdbadde921ec17b4ff9e97fbd41096903b21772"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri May 28 13:31:45 2010 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri May 28 16:12:01 2010 -0700"
      },
      "message": "Atomic/SMP update, part 3.\n\nUpdate ARM atomic ops to use LDREX/STREX.  Stripped out #if 0 chunk.\n\nInsert explicit memory barriers in pthread and semaphore code.\n\nFor bug 2721865.\n\nChange-Id: I0f153b797753a655702d8be41679273d1d5d6ae7\n"
    },
    {
      "commit": "78c1c04ced772298be8bdb5a94b6ce491bb9b3e1",
      "tree": "31881f9114a2e6975f262200685d39141a144013",
      "parents": [
        "1297428e89ead45849068989d334d8b7eae2f602"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Wed May 19 23:17:16 2010 -0300"
      },
      "committer": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Wed May 19 23:17:16 2010 -0300"
      },
      "message": "pthread: introduce pthread_setname_np() as a mean to give names to threads\n\n... so that each cloned process at the kernel level can be named\nindependently. Tools like \u0027top\u0027 can display the CPU/memory statistics\nfor each process\u0027s thread if \"Show Threads\" mode is on.\n\nWith this function in place, we can convert dalvik/Thread.c setThreadName()\nfunction over this function. This feature ought to be provided by the\nunderlying C library and not coded directly in Dalvik.\n\nChange-Id: Ifa997665dbaa114e0b126f8c667708be9a4137fd\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\n"
    },
    {
      "commit": "5207d78c321571b4b5ef3dd405198267a0d940b1",
      "tree": "d68a66aeac566fac1fe085a8728a86df80cfb295",
      "parents": [
        "b5e4a416060aa7f0a1e2a9ad5b8e318d59986852"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Mar 23 05:30:55 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Mar 23 05:30:55 2010 -0700"
      },
      "message": "Fix typo that broke recursive mutexes implementation.\n\nChange-Id: I832901604b487c6a50304c311b5ba135e153530d\n"
    },
    {
      "commit": "b5e4a416060aa7f0a1e2a9ad5b8e318d59986852",
      "tree": "39115a2ef1c6c4084763687a312a67a52c9597c1",
      "parents": [
        "377d4c979dee3dcb5929e8f7a68a53c2407259ab"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Mar 19 17:59:23 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Mar 22 17:31:50 2010 -0700"
      },
      "message": "pthread: Use private futexes by default in condition variables\n\nNow that the system properly uses shared condvars when needed, we\ncan enable the use of private futexes for them too.\n\nChange-Id: Icf8351fc0a2309f764cba45c65bc3af047720cdf\n"
    },
    {
      "commit": "377d4c979dee3dcb5929e8f7a68a53c2407259ab",
      "tree": "1783fe0272f1437faabfe8365e615696eb8d374c",
      "parents": [
        "709a898de82128c065381e258e8e71f0a55df976",
        "1825fb5d5f214849e39d95660795a0d3633f8eeb"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 22 15:55:09 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 22 15:55:09 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: I70266ee8c520b216773f267e46c8273d2334c31d\n"
    },
    {
      "commit": "88f06cd84a70f8a5212cb03272ec2c7cf0017afa",
      "tree": "4ff0a88177cd5fb2ca9c0e6df9a331cea7ecad1c",
      "parents": [
        "ee7b077abf1d99503b986489ad93374a057cb354"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Mar 18 17:13:41 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Mar 18 17:13:41 2010 -0700"
      },
      "message": "Use private futexes for pthread_mutex_t.\n\nThis does not change the implementation of conditional variables\nsince we\u0027re waiting for other system components to properly use\npthread_condattr_init/setpshared before that.\n\nAlso remove an obsolete x86 source file.\n\nChange-Id: Ia3e3fbac35b87a534fb04d4381c3c66b975bc8f7\n"
    },
    {
      "commit": "ee7b077abf1d99503b986489ad93374a057cb354",
      "tree": "2f424373469e9e040312951e59a9627cb17d6a8d",
      "parents": [
        "40e6b822866ee59f7823000384321bb899416cb1"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Mar 18 14:07:42 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Mar 18 14:07:42 2010 -0700"
      },
      "message": "Add pthread_condattr_init/destroy/setpshared/getpshared\n\nNote that this does not change the implementation of conditional variables\nwhich still use shared futexes, independent on the flags being selected.\n\nThis will be fixed in a later patch, once our system is modified to use\npthread_condattr_setpshared(attr, PTHREAD_PROCESS_SHARED) properly.\n\nChange-Id: I935de50964cd41f97a13dbfd6626d3407b0406c3\n"
    },
    {
      "commit": "40e6b822866ee59f7823000384321bb899416cb1",
      "tree": "743a554912d9f7efdac1d217c31b0fc49b2fc21f",
      "parents": [
        "8641833b62e3b319796dc80ea16eb1592c05edf6"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Mar 17 11:25:46 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Mar 17 11:25:46 2010 -0700"
      },
      "message": "Fix indentation in pthread mutex implementation.\n\nThis is preliminary work to simplify later changes to support\nprivate futexes.\n\nChange-Id: I06750936a93747a5e3f5a10228cbdc29e39c528c\n"
    },
    {
      "commit": "8641833b62e3b319796dc80ea16eb1592c05edf6",
      "tree": "f0b9b778513da0e049ce1b4c706ae5000848d7c1",
      "parents": [
        "ba9c6f0989ae94778ba2b9f597adc827c9dc81e8"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Mar 11 14:47:47 2010 -0800"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Mar 11 14:47:47 2010 -0800"
      },
      "message": "Revert \"bionic: pthread: use private futexes by default for mutexes and condvars\"\n\nThis reverts commit ba9c6f0989ae94778ba2b9f597adc827c9dc81e8.\n"
    },
    {
      "commit": "ba9c6f0989ae94778ba2b9f597adc827c9dc81e8",
      "tree": "2376f2a87f6ac304bd93beca7c8139b890a6227f",
      "parents": [
        "1cfbda826ce66e9bd1507a31b7e6df62e0dbcc6e"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Mar 10 16:44:08 2010 -0800"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Mar 11 11:48:38 2010 -0800"
      },
      "message": "bionic: pthread: use private futexes by default for mutexes and condvars\n\nPrivate futexes are a recent kernel addition: faster futexes that cannot be\nshared between processes. This patch uses them by default, unless the PROCESS_SHARED\nattribute flag is used when creating a mutex and/or conditional variable.\n\nAlso introduces pthread_condattr_init/destroy/setpshared/getpshared.\n\nChange-Id: I3a0e2116f467072b046524cb5babc00e41057a53\n"
    },
    {
      "commit": "8f8b5310d2c3fe8782377bd66b65ed14dc6511a4",
      "tree": "1cd0c6e85535467a0ffd973991aef7bccb499473",
      "parents": [
        "1f6f49396335d88c577c16304b1989d0d1468e5c"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Mar 01 11:30:40 2010 -0800"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Mar 01 11:30:40 2010 -0800"
      },
      "message": "Fix pthread_sigmask() to return correct error values.\n\nBefore that, it returned -1 on error and set errno (not Posix)\nAfter the patch, it returns the error code and leaves errno untouched.\n"
    },
    {
      "commit": "a28336c73542f5df1c03de4c142070f408e8d5aa",
      "tree": "4e9349481971a8673e098108b5716a23fa59d9b8",
      "parents": [
        "95604529ec25fe7923ba88312c590f38aa5e3d9e"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Fri Feb 05 16:21:07 2010 -0200"
      },
      "committer": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Fri Feb 05 16:21:07 2010 -0200"
      },
      "message": "bionic: on pthread_join(), avoid extra check in case we find the thread\n\n... by using similar logic as used in pthread_detach().\n\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\n"
    },
    {
      "commit": "95604529ec25fe7923ba88312c590f38aa5e3d9e",
      "tree": "c6f1dd860fcdc273ab21b696778987261f6e4fa8",
      "parents": [
        "71c0aeb44f2301af85d6a370dbd7308602a1dfe0",
        "194d3fa048cf909ca592dd56fa538dc9cd3f5ddb"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Sun Nov 15 12:05:31 2009 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Sun Nov 15 12:05:31 2009 -0800"
      },
      "message": "merge from eclair\n"
    },
    {
      "commit": "194d3fa048cf909ca592dd56fa538dc9cd3f5ddb",
      "tree": "3a00bb9e267cf952d7d1140ff9a39ca07ee6c994",
      "parents": [
        "fde8642fc43bdd224e43e5ee9583a49a758fb03c"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Nov 12 18:45:14 2009 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Nov 12 18:45:14 2009 -0800"
      },
      "message": "eclair snapshot\n"
    },
    {
      "commit": "7e5e9f42706da2f487645a522e907b38fc387910",
      "tree": "0434cb0f33820821a4f80c72a555f720dc34f1e1",
      "parents": [
        "9641805419d30e8bfa4624cf54f823b7a3a9e320",
        "bc10cd2900cdb7fed077163b6a33e0f8572b2b19"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Sep 23 16:09:39 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 23 16:09:39 2009 -0700"
      },
      "message": "am bc10cd29: Fix a typo that resulted in a crash in the boot sequence\n\nMerge commit \u0027bc10cd2900cdb7fed077163b6a33e0f8572b2b19\u0027 into eclair-plus-aosp\n\n* commit \u0027bc10cd2900cdb7fed077163b6a33e0f8572b2b19\u0027:\n  Fix a typo that resulted in a crash in the boot sequence\n"
    },
    {
      "commit": "bc10cd2900cdb7fed077163b6a33e0f8572b2b19",
      "tree": "3d945a8b4137c23ae15b1246742f352b9378d71a",
      "parents": [
        "d154954f02691618fdf73a5a97336e64cad37af0"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Sep 23 15:56:50 2009 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Sep 23 15:56:50 2009 -0700"
      },
      "message": "Fix a typo that resulted in a crash in the boot sequence\n"
    },
    {
      "commit": "9641805419d30e8bfa4624cf54f823b7a3a9e320",
      "tree": "568749b845330d30a6f6918db48f8def50cc7111",
      "parents": [
        "7910e39d197bc32ed79a144d06279c2be3c7f296",
        "d154954f02691618fdf73a5a97336e64cad37af0"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Sep 23 12:20:52 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 23 12:20:52 2009 -0700"
      },
      "message": "am d154954f: Merge change 26419 into eclair\n\nMerge commit \u0027d154954f02691618fdf73a5a97336e64cad37af0\u0027 into eclair-plus-aosp\n\n* commit \u0027d154954f02691618fdf73a5a97336e64cad37af0\u0027:\n  Add pthread_mutex_lock_timeout_np\n"
    },
    {
      "commit": "3f56b7f65adb9ee35cd0f878ca00b92011eec427",
      "tree": "94c29385b9f2afa873c61ddad29b12f7e9b8432a",
      "parents": [
        "916edf2a3fc60e08a5f29cd322d9f2a04d15cb49"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Sep 22 12:40:22 2009 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Sep 22 15:17:50 2009 -0700"
      },
      "message": "Add pthread_mutex_lock_timeout_np\n\nThis is used to perform a mutex lock for a given amount of\nmilliseconds before giving up. Using the _np prefix since this\nis absolutely not portable.\n\nAlso remove a compiler warning in pthread_attr_getstackaddr\n"
    },
    {
      "commit": "895244b2ab91b34ab03efc78417ee1eb73f3e7ba",
      "tree": "3804d2df015633253f48beaaf268eb10f02a2543",
      "parents": [
        "b8a18d059b8bde9a04e5778a0074a54413328472",
        "a246a71975c1b4a939421ed20fdd8557f93de46f"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Sep 16 16:21:35 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Sep 16 16:21:35 2009 -0700"
      },
      "message": "merge from open-source master\n"
    },
    {
      "commit": "a4e67f4512e2609c13a67d569bff14001413a042",
      "tree": "6e25ea92c5d2d407068b088ca9e46e9ad2ffb9b5",
      "parents": [
        "76ec6891e2bc18c9e12cd2f567358bb817b24cff"
      ],
      "author": {
        "name": "Matthieu CASTET",
        "email": "matthieu.castet@gmail.com",
        "time": "Sat Dec 27 00:04:10 2008 +0100"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Sep 14 09:19:42 2009 -0700"
      },
      "message": "Remove code duplication for pthread_cond_timeout_np : use __pthread_cond_timedwait_relative helper\n"
    },
    {
      "commit": "b7681167cbe91c2bb95cccdc08f75184ed1fb839",
      "tree": "0a8af97396d0cdd76a5698259bf1a89b0accb5b9",
      "parents": [
        "a2f5e212448f36f0b35cf695d13bb4defdb4472e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jul 13 22:00:33 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jul 13 22:00:33 2009 -0700"
      },
      "message": "allow pthread_mutexattr_setpshared to accept SHARED mutexes, since our current impl actually uses shared mutexes\n"
    },
    {
      "commit": "a2f5e212448f36f0b35cf695d13bb4defdb4472e",
      "tree": "6c5fe5b6f2c8134de44af2f271505445d63750a2",
      "parents": [
        "733f7deeb72c38e4d83e1b1fc9f237712fa84d52"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jul 13 15:00:46 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jul 13 18:37:40 2009 -0700"
      },
      "message": "added pthread_cond_timedwait_relative_np()\n"
    },
    {
      "commit": "1dc9e472e19acfe6dc7f41e429236e7eef7ceda1",
      "tree": "3be0c520fae17689bbf5584e1136fb820caef26f",
      "parents": [
        "1767f908af327fa388b1c66883760ad851267013"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "1767f908af327fa388b1c66883760ad851267013",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "a799b53f10e5a6fd51fef4436cfb7ec99836a516"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "9f65adf2ba3bb15feb8b7a7b3eef788df3fd270e",
      "tree": "c06064fc9022ef63a40f83a91292103784f49780",
      "parents": [
        "d37527501c85edcb3a6a7c8a0b6297d52d434897"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Feb 10 15:43:56 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Feb 10 15:43:56 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@130745\n"
    },
    {
      "commit": "e5cc1f386b167b9f7bfdebc7219e89aa9b71e4b2",
      "tree": "2cbd43daa6744ed80e833528f8cbfc0c485e5253",
      "parents": [
        "6d6c82c7a0a6b9a89f61b61c66f9b90d9c7177dc"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 15 16:12:07 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 15 16:12:07 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@126645\n"
    },
    {
      "commit": "4e468ed2eb86a2406e14f1eca82072ee501d05fd",
      "tree": "4e05b3c66eef86531e464521a3bf96a1864d4bf5",
      "parents": [
        "a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:03:48 2008 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:03:48 2008 -0800"
      },
      "message": "Code drop from //branches/cupcake/...@124589\n"
    },
    {
      "commit": "a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349",
      "tree": "defd1cc07d16ad2f3b21154114e092d11c94c5bb",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
