)]}'
{
  "commit": "6bf0c9f83465dc43c98e1c686359fda77b466c61",
  "tree": "fb84a68fd638dbef529b52414f4dc9273c6faae3",
  "parents": [
    "dcfd7d5964539f73763e83154203503ac5af4496"
  ],
  "author": {
    "name": "Kirill Makurin",
    "email": "maiddaisuki@outlook.com",
    "time": "Tue Sep 29 08:29:48 2026 +0900"
  },
  "committer": {
    "name": "LIU Hao",
    "email": "lh_mouse@126.com",
    "time": "Wed Sep 30 11:46:44 2026 +0800"
  },
  "message": "winpthreads: mutex.c: implement robust mutexes\n\nImplementation for robust (`PTHREAD_MUTEX_ROBUST`) mutexes is based directly\non Windows mutexes.\n\nUnlike stalled (`PTHREAD_MUTEX_STALLED`) mutexes, robust mutexes lack fast lock\npaths and always require call to `WaitForSingleObject`, which may result in\na very noticable overhead in certain cases.\n\nAdd tests for robust mutexes. New tests correspond to those for stalled mutexes;\nthere are two new subtests specific to robust mutexes:\n\n- robust-*-state-recoverable\n- robust-*-state-unrecoverable\n\nThese tests verify that robust mutexes properly handle cases when a thread\nwhich owned the mutex terminated without releasing it.\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nCo-authored-by: LIU Hao \u003clh_mouse@126.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "152c561a7871f70585b26fcac09c054e97082aff",
      "old_mode": 33188,
      "old_path": "mingw-w64-libraries/winpthreads/src/mutex.c",
      "new_id": "eff3ad80d62567d42b0c45ffacc1bc32649177a0",
      "new_mode": 33188,
      "new_path": "mingw-w64-libraries/winpthreads/src/mutex.c"
    },
    {
      "type": "modify",
      "old_id": "57a647dda32b91adae8b4bfe8f13d4755de61147",
      "old_mode": 33188,
      "old_path": "mingw-w64-libraries/winpthreads/tests/Makefile.am",
      "new_id": "8a3074622ad6e9545a35c5dee857811a9585abae",
      "new_mode": 33188,
      "new_path": "mingw-w64-libraries/winpthreads/tests/Makefile.am"
    },
    {
      "type": "modify",
      "old_id": "39974c42c6770ce8ce179209fa171d7d40063e6d",
      "old_mode": 33188,
      "old_path": "mingw-w64-libraries/winpthreads/tests/pthread_mutex/attr-robust.c",
      "new_id": "b0473f5be01997f86a2fb77a2c46c94fb098f0f3",
      "new_mode": 33188,
      "new_path": "mingw-w64-libraries/winpthreads/tests/pthread_mutex/attr-robust.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "367a9be14226a8407b22f3f882c8fd2940efba79",
      "new_mode": 33188,
      "new_path": "mingw-w64-libraries/winpthreads/tests/pthread_mutex/robust-errorcheck-basic.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bd4e2fbd94cda849246b2b68a54d555271127dc0",
      "new_mode": 33188,
      "new_path": "mingw-w64-libraries/winpthreads/tests/pthread_mutex/robust-errorcheck-lock-recursive.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e09c61d10fdf51007ee0f6d22ae2bcfc759f99bd",
      "new_mode": 33188,
      "new_path": "mingw-w64-libraries/winpthreads/tests/pthread_mutex/robust-errorcheck-state-recoverable.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7ceadc999f387f863dfcdeab26bbd396f6e7947e",
      "new_mode": 33188,
      "new_path": "mingw-w64-libraries/winpthreads/tests/pthread_mutex/robust-errorcheck-state-unrecoverable.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "04a94f3218fc4888113edbc578f2973b47b7c156",
      "new_mode": 33188,
      "new_path": "mingw-w64-libraries/winpthreads/tests/pthread_mutex/robust-errorcheck-timedlock.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "93c64abcd225f559c502488c20c49b3c976f2470",
      "new_mode": 33188,
      "new_path": "mingw-w64-libraries/winpthreads/tests/pthread_mutex/robust-errorcheck-trylock-recursive.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "46c5dad2240daafcb1b6a8f9b06a2bfdc2a1ea7b",
      "new_mode": 33188,
      "new_path": "mingw-w64-libraries/winpthreads/tests/pthread_mutex/robust-errorcheck-trylock.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "dd4097a2de808a210ed72046179f776adccc2cfd",
      "new_mode": 33188,
      "new_path": "mingw-w64-libraries/winpthreads/tests/pthread_mutex/robust-errorcheck-unlock.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ac70d64596e85d06a176aaab1b0c71640fe4f4ed",
      "new_mode": 33188,
      "new_path": "mingw-w64-libraries/winpthreads/tests/pthread_mutex/robust-normal-basic.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0df1d0d4cab6b7833c01586fad884f8270b08162",
      "new_mode": 33188,
      "new_path": "mingw-w64-libraries/winpthreads/tests/pthread_mutex/robust-normal-lock-recursive.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "046c72f546d8bbf092ce13b02047f1a4c5c2877f",
      "new_mode": 33188,
      "new_path": "mingw-w64-libraries/winpthreads/tests/pthread_mutex/robust-normal-state-recoverable.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "12deb1bb3a954c228f92d2785851dfaf5fc4c683",
      "new_mode": 33188,
      "new_path": "mingw-w64-libraries/winpthreads/tests/pthread_mutex/robust-normal-state-unrecoverable.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a87bacb5d73768abd3cd8a73918e2731c282de78",
      "new_mode": 33188,
      "new_path": "mingw-w64-libraries/winpthreads/tests/pthread_mutex/robust-normal-timedlock.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f235599b130d7d4a2496a11a730ad90974032599",
      "new_mode": 33188,
      "new_path": "mingw-w64-libraries/winpthreads/tests/pthread_mutex/robust-normal-trylock-recursive.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e8ee00ad240ef4976be4b6d7c2981a685f77cc1b",
      "new_mode": 33188,
      "new_path": "mingw-w64-libraries/winpthreads/tests/pthread_mutex/robust-normal-trylock.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "60080e0cce481580e383101845666aca8915a366",
      "new_mode": 33188,
      "new_path": "mingw-w64-libraries/winpthreads/tests/pthread_mutex/robust-normal-unlock.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "14a045edc9fd2d24950774d01cdda783e1ba3977",
      "new_mode": 33188,
      "new_path": "mingw-w64-libraries/winpthreads/tests/pthread_mutex/robust-recursive-basic.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d0a81f016707934215fccd6e1cd35fac6211a777",
      "new_mode": 33188,
      "new_path": "mingw-w64-libraries/winpthreads/tests/pthread_mutex/robust-recursive-lock-recursive.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "730fad659b4eb3f43f8536db65666bcf83d4b37f",
      "new_mode": 33188,
      "new_path": "mingw-w64-libraries/winpthreads/tests/pthread_mutex/robust-recursive-state-recoverable.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6fd509355da51b593e472aedb73de3b962dc39ee",
      "new_mode": 33188,
      "new_path": "mingw-w64-libraries/winpthreads/tests/pthread_mutex/robust-recursive-state-unrecoverable.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a932ff12db1e5a73b0f4b013492991491fcc1db7",
      "new_mode": 33188,
      "new_path": "mingw-w64-libraries/winpthreads/tests/pthread_mutex/robust-recursive-timedlock.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e06726e4a00965bf17caa6d2c1d2b24c7a202c99",
      "new_mode": 33188,
      "new_path": "mingw-w64-libraries/winpthreads/tests/pthread_mutex/robust-recursive-trylock-recursive.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fb7cb23910fe960db709118e676b50c8455f0da6",
      "new_mode": 33188,
      "new_path": "mingw-w64-libraries/winpthreads/tests/pthread_mutex/robust-recursive-trylock.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e694642dabffa6c20c35d730db86ada66e2d513e",
      "new_mode": 33188,
      "new_path": "mingw-w64-libraries/winpthreads/tests/pthread_mutex/robust-recursive-unlock.c"
    }
  ]
}
