)]}'
{
  "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",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "dd8d758105fa5db0c44aed35a10f6c6559ad4cc0",
      "old_mode": 33188,
      "old_path": "libc/bionic/pthread.c",
      "new_id": "a1950183db7d07e846ddbcc6346d2b11e716f80b",
      "new_mode": 33188,
      "new_path": "libc/bionic/pthread.c"
    }
  ]
}
