diff --git a/WindowServer/WSMessageLoop.cpp b/WindowServer/WSMessageLoop.cpp index 7ab5781e86..0f677ab524 100644 --- a/WindowServer/WSMessageLoop.cpp +++ b/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); diff --git a/WindowServer/WSMessageLoop.h b/WindowServer/WSMessageLoop.h index ed7412d5c8..e3e854a5b4 100644 --- a/WindowServer/WSMessageLoop.h +++ b/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(); diff --git a/WindowServer/main.cpp b/WindowServer/main.cpp index 4decc24038..c551eeed63 100644 --- a/WindowServer/main.cpp +++ b/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);