Re: POSIX shared memory (shm_open)

Charles Forsyth <[email protected]>
Newsgroups gmane.os.plan9.general
Message-ID <CAOw7k5ju27U1ZoRX3e+hg2ygZaApioDxbvuvexj1Gw1E5dq7MQ@mail.gmail.com>
There's some support for sharing memory segments in segattach(2) and
between unrelated processes with segment(3).

On Wed, 24 Apr 2019 at 16:23, Lassi Kortela <[email protected]> wrote:

> 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
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.