)]}'
{
  "commit": "34b8e24d7ccdbe25af8ad96dfd3154aeb302a8d6",
  "tree": "29183cfe6adccf47346302fb7950b914aee29c63",
  "parents": [
    "a97741a08d36ac08d913b8bc86abf128df627e85"
  ],
  "author": {
    "name": "Darian",
    "email": "32921628+Dazza0@users.noreply.github.com",
    "time": "Wed Jun 01 07:11:02 2022 +0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue May 31 16:11:02 2022 -0700"
  },
  "message": "Add support for newlib dynamic reentrancy (#496)\n\nPreviously, newlib\u0027s _impure_ptr was updated on every context switch\r\nto point to the current task\u0027s _reent structure.\r\n\r\nHowever, this behavior is no longer valid on multi-core systems due\r\nto the fact that multiple cores can switch contexts at the same time,\r\nthus leading to the corruption of the _impure_ptr.\r\n\r\nHowever, Newlib can be compiled with __DYNAMIC_REENT__ enabled which\r\nwill cause newlib functions to call __getreent() instead in order to\r\nobtain the required reent struct.\r\n\r\nThis commit adds dynamic reentrancy support to FreeRTOS:\r\n\r\n- Added a configNEWLIB_REENTRANT_IS_DYNAMIC to enable dynamic reentrancy support\r\n- _impure_ptr is no longer updated with reentrancy is dynamic\r\n- Port must provide their own __getreent() that returns the current task\u0027s reent struct",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6aa3b803c06ecde4019e636257d4e9036996a5e3",
      "old_mode": 33188,
      "old_path": "include/FreeRTOS.h",
      "new_id": "60abd75b6ca2949203a0cea4e5220592587cd67b",
      "new_mode": 33188,
      "new_path": "include/FreeRTOS.h"
    },
    {
      "type": "modify",
      "old_id": "4296e300b62b611616f380cb00a9254984422ce6",
      "old_mode": 33188,
      "old_path": "tasks.c",
      "new_id": "7eb1409aaf0044a58245c67487702196f9654db9",
      "new_mode": 33188,
      "new_path": "tasks.c"
    }
  ]
}
