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.