Bladeren bron

LibIPC: Increase the local socket buffer size to 128 KiB if possible

This makes a big difference on macOS, where the default buffer size
for local sockets is 8 KiB. With bigger buffers, we don't have to
block on IPC nearly as often.
Andreas Kling 9 maanden geleden
bovenliggende
commit
f0fc516cf2
1 gewijzigde bestanden met toevoegingen van 4 en 0 verwijderingen
  1. 4 0
      Userland/Libraries/LibIPC/Connection.cpp

+ 4 - 0
Userland/Libraries/LibIPC/Connection.cpp

@@ -19,6 +19,10 @@ ConnectionBase::ConnectionBase(IPC::Stub& local_stub, NonnullOwnPtr<Core::LocalS
     , m_socket(move(socket))
     , m_local_endpoint_magic(local_endpoint_magic)
 {
+    socklen_t socket_buffer_size = 128 * KiB;
+    (void)Core::System::setsockopt(m_socket->fd().value(), SOL_SOCKET, SO_SNDBUF, &socket_buffer_size, sizeof(socket_buffer_size));
+    (void)Core::System::setsockopt(m_socket->fd().value(), SOL_SOCKET, SO_RCVBUF, &socket_buffer_size, sizeof(socket_buffer_size));
+
     m_responsiveness_timer = Core::Timer::create_single_shot(3000, [this] { may_have_become_unresponsive(); });
     m_socket->on_ready_to_read = [this] {
         NonnullRefPtr protect = *this;