)]}'
{
  "commit": "d172207ae34e1591a90b093a6dc8f5f1a09d3c77",
  "tree": "4420c4e343cd790f13eb269714af95ab5cfb029e",
  "parents": [
    "63b732b7c77618f5a18f5dd9740b190e543ef2c8"
  ],
  "author": {
    "name": "David Chisnall",
    "email": "github@theravensnest.org",
    "time": "Fri Jan 10 13:31:44 2025 +0000"
  },
  "committer": {
    "name": "David Chisnall",
    "email": "davidchisnall@users.noreply.github.com",
    "time": "Fri Jan 10 17:59:33 2025 +0000"
  },
  "message": "Improve futex_wake behaviour.\n\nThe current code yields and schedules a new thread if any equal or\nhigher-priority thread has become runnable.\n\nThe new code decomposes these cases.  If a new thread is runnable and\nshould run now, the current thread yields.  If a new thread is runnable\nbut is the same priority as the current thread, the scheduler ensures\nthat a timer interrupt is ready but does not yield immediately.\n\nThis improves the test suite performance by around 2% and a\nproducer-consumer microbenchmark by about 35%.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0aef3090ceb4ebc9b3d80d3a39775ffd3b579cad",
      "old_mode": 33188,
      "old_path": "sdk/core/scheduler/main.cc",
      "new_id": "214bca030fa6825087793d65572041db9e8f62ef",
      "new_mode": 33188,
      "new_path": "sdk/core/scheduler/main.cc"
    },
    {
      "type": "modify",
      "old_id": "f937c4653855eb47d689674578ad4b14c1a07e08",
      "old_mode": 33188,
      "old_path": "sdk/core/scheduler/thread.h",
      "new_id": "e050e08da90723ff03eab9f3590d064f3b913c68",
      "new_mode": 33188,
      "new_path": "sdk/core/scheduler/thread.h"
    },
    {
      "type": "modify",
      "old_id": "c74a9d5dd0e007c28646239d6caae06bea5bee78",
      "old_mode": 33188,
      "old_path": "sdk/core/scheduler/timer.h",
      "new_id": "5a489244e489fcaac5d79e53b906bcf2fc247530",
      "new_mode": 33188,
      "new_path": "sdk/core/scheduler/timer.h"
    },
    {
      "type": "modify",
      "old_id": "5f3e22691297fe41b5ac0e06cb8b9654fafe1d46",
      "old_mode": 33188,
      "old_path": "sdk/include/platform/generic-riscv/platform-timer.hh",
      "new_id": "6fce600055a7949a763fcd133a42e8bcf9298976",
      "new_mode": 33188,
      "new_path": "sdk/include/platform/generic-riscv/platform-timer.hh"
    }
  ]
}
