There seems to be some debate in glibc over whether this API should be supported, due to the long-standing debate about "pthread_t" vs "kernel tid" APIs. (And this API uses kernel tids, of course.) One proposal from previous glibc discussion was to add a SIGEV_PTHREAD_ID, which takes a pthread_t, instead of a kernel tid. Nobody has done this yet, and I'd note that if it is done, that is not at all incompatible with also continuing to support SIGEV_THREAD_ID. (Just like both sched_setaffinity and pthread_setaffinity_np exist without issue). Despite that discussion, SIGEV_THREAD_ID functionality does in fact work with glibc -- it provides the SIGEV_THREAD_ID define in its headers, and it defines the same 'struct sigevent' as the kernel does, including a _tid member. The only thing it's missing is the field name "sigev_notify_thread_id" -- so users are simply doing "#define sigev_notify_thread_id _sigev_un._tid" as a workaround (ugh). However, it does _not_ work today with musl, as musl's timer_create function translates the user-facing struct to a separate kernel-facing structure. Given long-standing usage of this feature, and given that potential future directions are additive, not conflicting, ISTM reasonable to just add support for this to musl.