34a11d845b
The relibc fork just gained 8 commits:
- P3-pthread-yield (sched_yield via proc scheme)
- P3-barrier-smp-futex (SMP-safe barrier)
- P5-robust-mutexes (robust mutex implementation)
- P5-sched-api (replaces todo!() in sched_* functions)
- P3-threads (C11 <threads.h>)
- P7-pthread-affinity + P7-pthread-setname (manual surgical,
including cpu_set_t struct, sched-affinity proc scheme handle,
sched C-export, setname/getname_np)
- P3-semaphore-comprehensive (POSIX semaphores)
- P5-signal-handler-panic-hardening
- P3-semaphore-varargs-header
- P5-robust-mutex-enotrec-fix (ENOTRECOVERABLE handling)
Combined with the previous pthread_cond_signal POSIX fix, relibc
now provides:
- sched_getscheduler/setscheduler/getparam/setparam (real impls)
- pthread_setaffinity_np/getaffinity_np
- pthread_setname_np/getname_np
- pthread_setcancelstate/setcanceltype (already worked)
- C11 <threads.h>
- POSIX semaphores (sem_init, sem_wait, sem_post, etc.)
- SMP-safe barrier
- Robust mutex infrastructure (pending kernel FUTEX_OWNER_DIED
for full functionality)
Phase 0e is ~70% complete on the relibc side. Remaining 6 patches
need 3-way rebase or manual surgical edits.
Phase 1 (FUTEX_REQUEUE/PI/robust) is now a logical follow-on: the
relibc infrastructure is in place to use them when the kernel
futex layer is extended.