Hello,
Can the POSIX shared memory API be emulated on Plan 9 with reasonable
effort? I didn't find any mention of 'shm_open' in Plan 9 source.
To recap, the API works as follows:
- shm_open(path) to open or create an shm object, get a file descriptor
- shm_unlink(path) to remove the shm object from the path namespace
- ftruncate(fd) to actually allocate n bytes for the shm object
- fstat(fd) returns the size of the object in the st_size field
- mmap(fd) to get a pointer to use the shared memory
The shm fd works like other Unix fds (can be sent to an unrelated
process over a Unix-domain socket, persists over fork(), and can persist
over exec() if the close-on-exec flag is cleared). The kernel garbage
collects the shm object after the last fd pointing to it is closed.
I made the shim <https://github.com/lassik/shm_open_anon> to provide a
"shm_open() without a pathname" on various Unix flavors. I'm wondering
if Plan 9 support could be easily added.
I should mention that I have never used Plan 9, just read some of the
source and documentation.
Regards,
Lassi