)]}'
{
  "commit": "75dce8d683d0d265114ad5b2ec118f32ac695fd5",
  "tree": "8ccd022864f5697dc58e13d9be1601fc89d13178",
  "parents": [
    "771f2bbcb2cf998c75f38b2a3b6032e3144039c3"
  ],
  "author": {
    "name": "Hugo Lefeuvre",
    "email": "hugo.lefeuvre@scisemi.com",
    "time": "Mon Jun 10 17:31:35 2024 +0200"
  },
  "committer": {
    "name": "David Chisnall",
    "email": "davidchisnall@users.noreply.github.com",
    "time": "Wed Jun 12 10:07:49 2024 +0100"
  },
  "message": "Two fixes to the `flags` argument of `futex_timed_wait`.\n\nThe `flags` argument of `futex_timed_wait` is currently of type\n`FutexWaitFlags`. This is not exactly what we want, since we cannot do\n\n\tfutex_timed_wait(flag1 | flag2)\n\nas `flag1 | flag2` would implicitly cast to `int`, triggering a\ncompilation error as `futex_timed_wait` takes a `FutexWaitFlags`.\n\nTo address this, change the type of `flags` to `uint32_t`. This should\nbe a transparent change for callers.\n\nThis commit addresses a second problem: `FutexPriorityInheritance` does\nnot currently have an explicit value, which will cause issues when we\nadd another flag value: if another value is added without specifying an\nexplicit power-of-two value, the resulting enum flags will not be\n`OR`-able, causing subtle bugs.\n\nTo address this, add an explicit value of `(1 \u003c\u003c 0)` to\n`FutexPriorityInheritance`.\n\nAlthough these two problems do not have impact right now, they will as\nsoon as we introduce more flag values. Since we are currently\nreplicating this code elsewhere, we may as well address these issues.\n\nSigned-off-by: Hugo Lefeuvre \u003chugo.lefeuvre@scisemi.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "098377019612d2b553f9e279ca876fd9d30049f7",
      "old_mode": 33188,
      "old_path": "sdk/core/scheduler/main.cc",
      "new_id": "95ef0e2c090cacf1d34ac51eaf0903702457ce48",
      "new_mode": 33188,
      "new_path": "sdk/core/scheduler/main.cc"
    },
    {
      "type": "modify",
      "old_id": "7907e2a389cdae7fabfdee3b5193620de4de7863",
      "old_mode": 33188,
      "old_path": "sdk/include/futex.h",
      "new_id": "482919a8641b76063a2cd7ba94025f0be07ec69f",
      "new_mode": 33188,
      "new_path": "sdk/include/futex.h"
    }
  ]
}
