REDIVIVUS

Proposals / #1596

Mac THREAD_SignalExit: void __fastcc (void* pThreadId ECX, uint32_t nExitCode EDX)

checked · by KierTaylor · submitted 2026-11-08

ECX -> EDI = the pthread id, looked up repeatedly via 0x0002cfbd to find each thread handle. EDX -> [EBP-0x10] = the exit code, stored to the handle record +0x5c with +0x60 = 1 (signaled), +0x54 cleared, and waiters released (0x00025660). Each handle is locked/unlocked via 0x00021748. There are no stack args. Plain RET with no return value. ExitThread 0x0002bf9a calls it with ECX = pthread_self(), EDX = the exit code.

Changes 1, applied together

  1. Set prototype mac 0x0002bfa7

    signatureundefined THREAD_SignalExit(void)→void THREAD_SignalExit(void* pThreadId, uint32_t nExitCode)
    conventionunknown→__fastcc