)]}'
{
  "commit": "a5f6a43342d6bd0da57092ec4e1a6bce30bb2bce",
  "tree": "fcff5e76bddf71a765bfd66c44c96e6e102019ba",
  "parents": [
    "9c28ad219b654011783a42ec888ca87dbda704a6"
  ],
  "author": {
    "name": "Chris Dickens",
    "email": "christopher.a.dickens@gmail.com",
    "time": "Fri Jan 24 11:51:55 2020 -0800"
  },
  "committer": {
    "name": "Chris Dickens",
    "email": "christopher.a.dickens@gmail.com",
    "time": "Fri Feb 07 15:56:05 2020 -0800"
  },
  "message": "threads_posix: Use thread-local storage to cache thread ID\n\nTrying to capture debug logs that reproduce a problem can be tricky.\nTurning up the debug level will automatically make the program a bit\nslower. This alone cane make timing-sensitive bugs \"disappear\" when\ncapturing logs. One of the hot paths for debug messages is fetching the\nthread ID, which is immeasurably helpful in understanding thread\ninteractions within the library. Unfortunately most implementations\nrequire a system call to fetch the executing thread\u0027s ID, which isn\u0027t\nexactly going to help in the way of execution time.\n\nAdd a check for thread-local storage support when configuring the\nlibrary to build. If the toolchain provides this support, only one\nsystem call will be required per thread. This check is only done for\nnon-Windows systems because thread-local storage is inefficiently\nimplemented on MinGW.\n\nCloses #682\n\nSigned-off-by: Chris Dickens \u003cchristopher.a.dickens@gmail.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a2736881ce7b34070ded619966d9c188c817880e",
      "old_mode": 33188,
      "old_path": "configure.ac",
      "new_id": "53a904e7cb6e7440b17e1a049c76a0ad32b01a10",
      "new_mode": 33188,
      "new_path": "configure.ac"
    },
    {
      "type": "modify",
      "old_id": "92bb11d7a03c8e393b4d32bdd0d96c672491b53c",
      "old_mode": 33188,
      "old_path": "libusb/os/threads_posix.c",
      "new_id": "76384aced394bc4fac8b135d2c078e25b4b96e03",
      "new_mode": 33188,
      "new_path": "libusb/os/threads_posix.c"
    },
    {
      "type": "modify",
      "old_id": "8c3a7c49031b79a0e010a9d9571871f18104d014",
      "old_mode": 33188,
      "old_path": "libusb/version_nano.h",
      "new_id": "22567829cd47558670d6aa2bc24859f8587f21b2",
      "new_mode": 33188,
      "new_path": "libusb/version_nano.h"
    }
  ]
}
