AnyPS5/core/libs
QDarkRex 76b7f998f5 fix(kernel): give every thread a pthread handle and keep mutex ownership consistent
- scePthreadSelf returned null on Linux and for threads not created by
  scePthreadCreate (including the main thread); such threads now get a
  lazily adopted, non-joinable handle
- scePthreadExit on Linux skipped FinishThread, losing the join value
- detached threads on Linux were never freed; use the reference count
  already used on Windows
- unlocking a recursive mutex from a non-owner was undefined behaviour;
  return SCE_KERNEL_ERROR_EPERM
- scePthreadCondTimedwait did not restore the mutex owner after waking,
  so another thread locking during the wait made the waiter's unlock
  fail with EPERM and left the mutex locked forever
- SCE_KERNEL_ERROR_ETIMEDOUT in Cond.cpp was 0x80020062 instead of 0x8002003C

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 12:38:59 +07:00
..
nid feat(libs): no patch already exported from libc.prx symbols 2026-09-22 18:21:08 +03:00
prx fix(kernel): give every thread a pthread handle and keep mutex ownership consistent 2026-09-27 12:38:59 +07:00
tests fix(kernel): give every thread a pthread handle and keep mutex ownership consistent 2026-09-27 12:38:59 +07:00
CMakeLists.txt fix(kernel): give every thread a pthread handle and keep mutex ownership consistent 2026-09-27 12:38:59 +07:00
SceShaders.hpp feat(libs): libSce types impl + shaders refactor 2026-09-08 10:20:57 +03:00
SceTypes.hpp feat(libSceAgc): implement command packet functions 2026-09-13 14:34:15 +03:00