)]}'
{
  "commit": "e05a68d231678cc17a78bd5b708a35f23364fc5e",
  "tree": "f42f165955828a8627779a6d3ac7cae696d864ee",
  "parents": [
    "b4c09637a67492be2fdb125054cf4535947ea3ea"
  ],
  "author": {
    "name": "Ben Vanik",
    "email": "ben.vanik@gmail.com",
    "time": "Wed Apr 13 14:13:17 2022 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Apr 13 14:13:17 2022 -0700"
  },
  "message": "Rearranging iree_notification_t code to make it easier to follow. (#8877)\n\nThe mix of atomic/futex and pthreads operations made it hard to know\r\nwhen the pthread mutex should be locked and when atomics were ok. The\r\ndisabled synchronization path that no-op\u0027ed also obscured the intended\r\nbehavior. Now we have the divergent code split up more cleanly so that\r\nwe can more easily inspect it for correctness.\r\n\r\niree_notification_await is left shared across the implementations to\r\npreserve program behavior (that the condition is not checked with\r\na lock held) though we could probably tweak that if we wanted. Erring\r\non the side of keeping things the same for now.\r\n\r\nIntegrates the fix from #8876 for a hang/deadlock when using pthreads.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a9c5f736071001391c36b2ad70bda339a72957a3",
      "old_mode": 33188,
      "old_path": "iree/base/internal/synchronization.c",
      "new_id": "936238c4698465dcb9e929f54d42441d5d87b848",
      "new_mode": 33188,
      "new_path": "iree/base/internal/synchronization.c"
    },
    {
      "type": "modify",
      "old_id": "43086adcabeea60402a6e06bd3af5b58238f5e53",
      "old_mode": 33188,
      "old_path": "iree/base/internal/synchronization.h",
      "new_id": "45f3f598f063976a53c560d823a248ebc5d59dce",
      "new_mode": 33188,
      "new_path": "iree/base/internal/synchronization.h"
    }
  ]
}
