-
Couldn't load subscription status.
- Fork 8.1k
Description
Is your enhancement proposal related to a problem? Please describe.
While Zephyr has its own native pipe() call for IPC, the POSIX API could benefit by the addition of a pipe(2) system call to allow for better portability of userspace applications. In particular, in #24366, @pfalcon suggested (and I fully agree) that the socketpair(2) system call could be quite easily implemented with pipe(2).
The socketpair(2) implementation (#24367) is on hold until pipe(2) is implemented, tested and approved.
Describe the solution you'd like
I would be happy to implement pipe(2) and submit a PR.
Describe alternatives you've considered
The eventfd(2) syscall currently has an implementation in review #22863. However, AFAIK, it is a Linux-only syscall so applications written for some other OS that only supports the Berkeley Sockets API may not Just Work (TM) when being ported to Zephyr. Also, while eventfd(2) is better in terms of performance, it does not allow for arbitrary data to be passed between threads / processes.
Additional context