Bladeren bron

WindowServer: Set the WSMessageLoop::server_process() as early as possible.

Andreas Kling 6 jaren geleden
bovenliggende
commit
004aad0995
3 gewijzigde bestanden met toevoegingen van 4 en 1 verwijderingen
  1. 1 1
      WindowServer/WSMessageLoop.cpp
  2. 2 0
      WindowServer/WSMessageLoop.h
  3. 1 0
      WindowServer/main.cpp

+ 1 - 1
WindowServer/WSMessageLoop.cpp

@@ -31,7 +31,7 @@ WSMessageLoop& WSMessageLoop::the()
 
 int WSMessageLoop::exec()
 {
-    m_server_process = current;
+    ASSERT(m_server_process == current);
 
     m_keyboard_fd = m_server_process->sys$open("/dev/keyboard", O_RDONLY);
     m_mouse_fd = m_server_process->sys$open("/dev/psaux", O_RDONLY);

+ 2 - 0
WindowServer/WSMessageLoop.h

@@ -22,6 +22,8 @@ public:
     bool running() const { return m_running; }
     Process& server_process() { return *m_server_process; }
 
+    void set_server_process(Process& process) { m_server_process = &process; }
+
 private:
     void wait_for_message();
     void drain_mouse();

+ 1 - 0
WindowServer/main.cpp

@@ -10,6 +10,7 @@
 
 void WindowServer_main()
 {
+    WSMessageLoop::the().set_server_process(*current);
     current->set_priority(Process::HighPriority);
     auto info = current->set_video_resolution(1024, 768);