)]}'
{
  "commit": "91f34d4fe2fe0ffd393d0d915a75469fd60489a1",
  "tree": "b07cee5f01598766ba5ce34f6f315d53d80aea86",
  "parents": [
    "706bd6199acf9fed8f04200ecc734a3301609d5c"
  ],
  "author": {
    "name": "Hugo Lefeuvre",
    "email": "hugo.lefeuvre@scisemi.com",
    "time": "Mon Jun 10 18:45:56 2024 +0200"
  },
  "committer": {
    "name": "David Chisnall",
    "email": "davidchisnall@users.noreply.github.com",
    "time": "Wed Jun 12 10:07:49 2024 +0100"
  },
  "message": "Expose an API for finer control over heap allocator blocking behavior.\n\nThe current `timeout` argument of `heap_allocate*` functions determines\nwhether or not and how long the allocator should block for an allocation\nto be fulfiled. However it does not control on what events the allocator\nshould block.\n\nCurrently the allocator would block for three reasons: 1) there is no\nheap space available anymore, 2) the quota is exhausted, and 3) the\nquarantine is holding back memory which could be used for the\nallocation.\n\nFor the network stack use-case, we need a finer way to control this\nblocking behavior, for example to only wait on the quarantine.\n\nThis commit introduces such an API through a new `flags` argument.\n\nAdd tests for this new API, but not for `AllocateWaitQuotaExceeded` as\nit requires manipulating the quarantine to be done reliably.\n\nUpdate the stack usage of some allocator functions which has\ncorrespondingly increased.\n\nSigned-off-by: Hugo Lefeuvre \u003chugo.lefeuvre@scisemi.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bb8160c26ee42f61da354edeeec3995e10c48ea1",
      "old_mode": 33188,
      "old_path": "sdk/core/allocator/main.cc",
      "new_id": "f2299d202d77396018570c0e0600338cfe435db6",
      "new_mode": 33188,
      "new_path": "sdk/core/allocator/main.cc"
    },
    {
      "type": "modify",
      "old_id": "d60e4e4ee027a40eed0da0b95a524088810634ad",
      "old_mode": 33188,
      "old_path": "sdk/include/stdlib.h",
      "new_id": "de007dd2214595ffef17f161f57d3671f7287364",
      "new_mode": 33188,
      "new_path": "sdk/include/stdlib.h"
    },
    {
      "type": "modify",
      "old_id": "c206f356bce2803cb10ebc9694a36d81770019f4",
      "old_mode": 33188,
      "old_path": "tests/allocator-test.cc",
      "new_id": "084a29afd43f27892b3b9dd9c330cb6c82f7cec1",
      "new_mode": 33188,
      "new_path": "tests/allocator-test.cc"
    }
  ]
}
