Low-Level Interprocess Communication Primitives =============================================== Why not? -------- TODO: * There is no implementation of ``CrossProcessMutex`` for NetBSD/FreeBSD (Tier 3) and no implementation of ``CrossProcessSemaphore`` for OSX. * ``CrossProcessMutex`` is used in some very contained, platform-dependent graphics code. * Try to explain the implementations. Shared Memory ------------- Of course, `Shmems`_ are the high-level implementation of shared memory that Gecko code should use. But if that breaks down for your extreme case, lower-level-but-still-cross-platform primitives do exist: TODO: * There is some use of ``mozilla::ipc::SharedMemoryBasic``, wrapping Chromium's ``base::SharedMemory`` (Windows), ``base::FileDescriptor`` (Linux/Android) and OSX's ``mach_port_t`` (OSX). * Define that API and explain the ``ShareToProcess`` stuff. .. _Shmems: /ipc/shmem.html