浏览代码

Revert "LibIPC: Use a zero-delay timer for message processing"

This reverts commit 3bed7d5a5ee5870de4805dd2bf47e0523e387e76.

As discovered by tomuta, this caused a large increase in WindowServer
CPU usage.
Andreas Kling 3 年之前
父节点
当前提交
99a33c9a67
共有 2 个文件被更改,包括 3 次插入4 次删除
  1. 3 3
      Userland/Libraries/LibIPC/Connection.cpp
  2. 0 1
      Userland/Libraries/LibIPC/Connection.h

+ 3 - 3
Userland/Libraries/LibIPC/Connection.cpp

@@ -17,7 +17,6 @@ ConnectionBase::ConnectionBase(IPC::Stub& local_stub, NonnullRefPtr<Core::LocalS
     , m_local_endpoint_magic(local_endpoint_magic)
 {
     m_responsiveness_timer = Core::Timer::create_single_shot(3000, [this] { may_have_become_unresponsive(); });
-    m_processing_timer = Core::Timer::create_single_shot(0, [this] { handle_messages(); });
 }
 
 ConnectionBase::~ConnectionBase()
@@ -176,8 +175,9 @@ bool ConnectionBase::drain_messages_from_peer()
     }
 
     if (!m_unprocessed_messages.is_empty()) {
-        if (!m_processing_timer->is_active())
-            m_processing_timer->start();
+        deferred_invoke([this] {
+            handle_messages();
+        });
     }
     return true;
 }

+ 0 - 1
Userland/Libraries/LibIPC/Connection.h

@@ -60,7 +60,6 @@ protected:
 
     NonnullRefPtr<Core::LocalSocket> m_socket;
     RefPtr<Core::Timer> m_responsiveness_timer;
-    RefPtr<Core::Timer> m_processing_timer;
 
     RefPtr<Core::Notifier> m_notifier;
     NonnullOwnPtrVector<Message> m_unprocessed_messages;