)]}'
{
  "commit": "a357defdfe2af758d5ec9f0040949bf1db4cbe53",
  "tree": "083ad517656fad650c0c582fe09ea7f589187bec",
  "parents": [
    "e1093de6a0feeb44a6a2f3bb4509d35eb28bcb66"
  ],
  "author": {
    "name": "Tom Tromey",
    "email": "tom@tromey.com",
    "time": "Sat Nov 09 13:45:50 2024 -0700"
  },
  "committer": {
    "name": "Tom Tromey",
    "email": "tom@tromey.com",
    "time": "Thu Dec 12 15:17:39 2024 -0700"
  },
  "message": "Lock bfd_stat and bfd_get_mtime\n\nPR gdb/31713 points out some races when using the background DWARF\nreader.\n\nThis particular patch fixes some of these, namely the ones when using\nthe sim.  In this case, the \u0027load\u0027 command calls reopen_exec_file,\nwhich calls bfd_stat, which introduces a race.\n\nBFD only locks globals -- concurrent use of a single BFD must be\nhandled by the application.  To this end, this patch adds locked\nwrappers for bfd_stat and bfd_get_mtime.\n\nI couldn\u0027t reproduce these data races but the original reporter tested\nthe patch and confirms that it helps.\n\nBug: https://sourceware.org/bugzilla/show_bug.cgi?id\u003d31713\nApproved-By: Andrew Burgess \u003caburgess@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f6ec3cd5ca1176c447cd12d56e4a19b60abe1948",
      "old_mode": 33188,
      "old_path": "gdb/corefile.c",
      "new_id": "be0f1075488df538e9e821e0008f7482550da051",
      "new_mode": 33188,
      "new_path": "gdb/corefile.c"
    },
    {
      "type": "modify",
      "old_id": "82d9266b7e3669dabfe29c5362498d60be9fa6c5",
      "old_mode": 33188,
      "old_path": "gdb/exec.c",
      "new_id": "73280ad59e7c26452fd88080bbbc15e6435ca27b",
      "new_mode": 33188,
      "new_path": "gdb/exec.c"
    },
    {
      "type": "modify",
      "old_id": "3683eeba52bf0b0d7e87a0bd150e8155dcef8a9d",
      "old_mode": 33188,
      "old_path": "gdb/gdb_bfd.c",
      "new_id": "c233551b4e8b51ce577ab8fd7e1f8bebdc52ca6c",
      "new_mode": 33188,
      "new_path": "gdb/gdb_bfd.c"
    },
    {
      "type": "modify",
      "old_id": "331570d769c818355d764ad39bbc12c317730a01",
      "old_mode": 33188,
      "old_path": "gdb/gdb_bfd.h",
      "new_id": "a93d9aa92e8dd7c1206cc5bc0024acb3e288be9a",
      "new_mode": 33188,
      "new_path": "gdb/gdb_bfd.h"
    },
    {
      "type": "modify",
      "old_id": "ef6cf6606299c1f77538169f121688ee9f151f15",
      "old_mode": 33188,
      "old_path": "gdb/machoread.c",
      "new_id": "ac764c09496000cba43b1c85a9b5c1a0ba35e074",
      "new_mode": 33188,
      "new_path": "gdb/machoread.c"
    },
    {
      "type": "modify",
      "old_id": "76d17f548a58101d42c33c46cf534fbfb593a91e",
      "old_mode": 33188,
      "old_path": "gdb/objfiles.c",
      "new_id": "84866e1e30aa91b42d1a68e2dae88e5259319ee9",
      "new_mode": 33188,
      "new_path": "gdb/objfiles.c"
    },
    {
      "type": "modify",
      "old_id": "fd21d2d2c238d8e437c807f20348704e5edf8a86",
      "old_mode": 33188,
      "old_path": "gdb/symfile.c",
      "new_id": "4d5f3d2626278eec835ae968fe55d3b61be9fed3",
      "new_mode": 33188,
      "new_path": "gdb/symfile.c"
    }
  ]
}
