I've always been interested in Shared Memory. It was like the dual-port memory chips that were popular in the 80's. Simultaneous Memory access by two ALU's.
Truth be told, I never really used multiple-write. Instead, only one-write, read-many in software. Then too, I always liked the file interface, where you can find the memory by just indexing a file name. Linux uses the /run as a temp file system. It is completely RAM, so nothing spinning, By storing your shared memory here, multiple processes can easily locate and access it. What would really be nice, is if there was a dynamic library that let you use malloc and free to offload heap storage onto shared memory. Well there is! It's the OSSP mm tool. The mm tool has very little docs and very little references. Doing a Google search finds almost nothing. Loading the tool creates a version that doesn't use a temp file system. I compiled the tool to enable that, but found the whole thing bloated. So I loaded it into my IDE and smashed the hell out of it. Thus it became MemoryPool. MemoryPool just has one-write read-many. It just uses the Linux temp file system (/run). Thus, rather than having multiple threads reading a common heap, you can have multiple threads, or even multiple processes sharing a common memory. The best part, after just a little create/destroy wrapper for the pool, all you need to do is make a define macro to substitute malloc/free with MP_malloc/MP_free. I'm sure this is not a cure-all, and maybe even has some unacceptable costs for some, but I thought I'd throw this out in the wild as an option for your toolbox. https://github.com/srsampson/MemoryPool Have fun! Steve/k5okc _______________________________________________ Freetel-codec2 mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/freetel-codec2
