Consider the following scenario: 1. UI process creates some shared memory via SharedMemory::create 2. UI process sends the shared memory to the web process 3. Before the web process receives the shared memory, the web process crashes At this point, the shared memory has an extra handle open to it (created in step 2) that has been lost and will never be closed. This will result in leaking the shared memory!
<rdar://problem/8537369>