ladybird/Libraries/LibIPC
Aliaksandr Kalenik 60f27523c6 LibIPC: Adopt Mach OOL payloads on receive
Mach transport already sends payloads as out-of-line virtual-copy
regions, but the receive path immediately copied each payload into a new
Vector and deallocated the kernel mapping. That made the IPC IO thread
touch every byte before the main thread could decode the message.

Add ReceivedMessageBytes as the raw-message byte storage and let the
Mach transport adopt the OOL region directly. The mapping now lives
until the raw message storage is destroyed, so invalid descriptor paths
and normal queue teardown both release it through the same destructor.
Socket transports keep their existing receive copy path by wrapping
vectors in the same storage type, and the direct raw-message consumers
now decode from its ReadonlyBytes view.
2026-06-13 00:27:57 +01:00
..
Attachment.cpp Everywhere: Replace Unix socket IPC transport with Mach ports on macOS 2026-03-23 18:50:48 +01:00
Attachment.h Everywhere: Replace Unix socket IPC transport with Mach ports on macOS 2026-03-23 18:50:48 +01:00
AttachmentMachPort.cpp Everywhere: Replace Unix socket IPC transport with Mach ports on macOS 2026-03-23 18:50:48 +01:00
AutoCloseFileDescriptor.cpp Everywhere: Remove LibCore/System.h includes from header files 2025-12-04 15:40:46 +00:00
AutoCloseFileDescriptor.h Everywhere: Remove LibCore/System.h includes from header files 2025-12-04 15:40:46 +00:00
CMakeLists.txt LibIPC: Adopt Mach OOL payloads on receive 2026-06-13 00:27:57 +01:00
Concepts.h LibIPC: Support DistinctNumeric serialization 2026-05-21 11:45:06 +01:00
Connection.cpp LibIPC: Adopt Mach OOL payloads on receive 2026-06-13 00:27:57 +01:00
Connection.h LibIPC+LibWeb: Introduce IPC::Attachment abstraction 2026-03-13 20:22:50 +01:00
ConnectionFromClient.h LibIPC: Simplify IPC read hook 2025-10-21 09:31:22 +02:00
ConnectionToServer.h
Decoder.cpp LibIPC: Remove unused header in Decoder 2026-02-23 12:15:23 +01:00
Decoder.h LibIPC: Support DistinctNumeric serialization 2026-05-21 11:45:06 +01:00
Encoder.cpp LibIPC+LibWeb: Introduce IPC::Attachment abstraction 2026-03-13 20:22:50 +01:00
Encoder.h LibIPC+LibGfx: Add IPC serialization for typefaces 2026-05-21 11:45:06 +01:00
File.cpp LibIPC: Move Windows handle serialization into TransportSocketWindows 2026-04-08 20:19:05 +02:00
File.h Everywhere: Remove LibCore/System.h includes from header files 2025-12-04 15:40:46 +00:00
Forward.h Everywhere: Move Mach bootstrap listener into LibIPC 2026-03-24 19:51:52 +01:00
HandleType.h
Limits.h LibIPC: Move IPC message limits to a shared Limits.h header 2026-01-22 17:38:15 +01:00
MachBootstrapListener.cpp Everywhere: Move Mach bootstrap listener into LibIPC 2026-03-24 19:51:52 +01:00
MachBootstrapListener.h Everywhere: Move Mach bootstrap listener into LibIPC 2026-03-24 19:51:52 +01:00
MachBootstrapMessages.h Everywhere: Move Mach bootstrap listener into LibIPC 2026-03-24 19:51:52 +01:00
Message.cpp LibIPC: Move IPC payloads through post_message 2026-06-13 00:27:57 +01:00
Message.h LibIPC: Return a StringView for IPC message names 2026-04-23 09:42:07 -04:00
ReceivedMessageBytes.cpp LibIPC: Adopt Mach OOL payloads on receive 2026-06-13 00:27:57 +01:00
ReceivedMessageBytes.h LibIPC: Adopt Mach OOL payloads on receive 2026-06-13 00:27:57 +01:00
SingleServer.h Everywhere: Replace Unix socket IPC transport with Mach ports on macOS 2026-03-23 18:50:48 +01:00
Stub.h LibIPC: Remove unused Stub name member 2026-05-26 09:02:03 +02:00
Transport.h Everywhere: Replace Unix socket IPC transport with Mach ports on macOS 2026-03-23 18:50:48 +01:00
TransportBootstrapMach.cpp LibThreading/LibSync: Split out sync primitives 2026-05-08 18:58:35 -05:00
TransportBootstrapMach.h LibThreading/LibSync: Split out sync primitives 2026-05-08 18:58:35 -05:00
TransportHandle.cpp LibIPC: Dont VERIFY when encoding placeholder TransportHandles 2026-04-29 01:07:11 +02:00
TransportHandle.h Everywhere: Replace Unix socket IPC transport with Mach ports on macOS 2026-03-23 18:50:48 +01:00
TransportMachPort.cpp LibIPC: Adopt Mach OOL payloads on receive 2026-06-13 00:27:57 +01:00
TransportMachPort.h LibIPC: Adopt Mach OOL payloads on receive 2026-06-13 00:27:57 +01:00
TransportSocket.cpp LibIPC: Adopt Mach OOL payloads on receive 2026-06-13 00:27:57 +01:00
TransportSocket.h LibIPC: Adopt Mach OOL payloads on receive 2026-06-13 00:27:57 +01:00
TransportSocketWindows.cpp LibIPC: Adopt Mach OOL payloads on receive 2026-06-13 00:27:57 +01:00
TransportSocketWindows.h LibIPC: Adopt Mach OOL payloads on receive 2026-06-13 00:27:57 +01:00