I was slightly confused until the end, when the author mentioned that all of this is unnecessary in 3.8, with the advent of multiprocessing.shared_memory.
3.8 really was a banger of a release. SHM, NamedTuples got a 2x speed boost for lookups, Lists got 12% faster, tons of new types, lru_cache as a decorator, math.dist() so people could stop installing NumPy just for that…
On SHM specifically, though, it really is quite useful for certain applications, and I wish it got more attention. It’s particularly nice for IPC with C shared libraries.
Fun! I call C funcs from python every few months. I rarely use ctypes, preferring to use buffers / bytearrays along with pack / unpack and a little declarative module for defining python analogs of c structs or maybe some numpy. I've never had a need to do shared memory in python (or in the last 20 years for that matter), but a long time ago I did a fair amount with it in DEC VMS.
3.8 really was a banger of a release. SHM, NamedTuples got a 2x speed boost for lookups, Lists got 12% faster, tons of new types, lru_cache as a decorator, math.dist() so people could stop installing NumPy just for that…
On SHM specifically, though, it really is quite useful for certain applications, and I wish it got more attention. It’s particularly nice for IPC with C shared libraries.