|
Message-ID: <04c05d65470b5c94808481eaf724cc5d@yqxmail.com> Date: Thu, 16 Jul 2020 22:51:02 -0700 From: Hydro Flask <hydroflask@...mail.com> To: musl@...ts.openwall.com Subject: Idea: futex() system call entry point Hello, I have a project that implements an API that must be AS-safe. This is a blocking API, so currently the only option I have to implement the blocking behavior is select()/read() and similar FD-based calls. Using FDs to implement synchronization is okay but if there are very many threads then FD space would get exhausted (usually max 1024 FDs). It would be nice to use pthread_cond_wait() but that is not AS-safe according to POSIX. Had the idea of using futex() but my other constraint is that the blocking call must also be a cancellation point. Currently calling the futex system call through syscall() won't work and there is no way to implement cancellation on top of syscall() in a portable way since cancellation is implementation defined. So what if Linux libcs (and potentially others) started exposing futex() directly as a function call? It would need these properties to be useful: * AS-safe * cancellation point I saw that Rich Felker already proposed this many years ago but it seems it never came to fruition: https://sourceware.org/bugzilla/show_bug.cgi?id=9712#c8 What do you think about my idea? Hydro
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.