Aside: it's not necessary to know this, but <code>Shmem</code>s are actually just handles to other objects managed by IPDL-generated code.
== "Unsafe" Shmem ==
Code that has special needs can allocate "unsafe" Shmem. "Unsafe" Shmem allows full read/write access by all processes with a reference to the segment. This means that data races are possible, unlike with normal Shmem. To create a segment, use the interface <code>AllocUnsafeShmem()</code> instead of <code>AllocShmem()</code>. Use with care.