diff --git a/Kernel/ProcessGUI.cpp b/Kernel/ProcessGUI.cpp index e830dfb0fa..556a25199b 100644 --- a/Kernel/ProcessGUI.cpp +++ b/Kernel/ProcessGUI.cpp @@ -77,7 +77,7 @@ int Process::gui$destroy_window(int window_id) if (it == m_windows.end()) return -EBADWINDOW; auto message = make(WSMessage::WM_DestroyWindow); - WSMessageLoop::the().post_message((*it).value.leak_ptr(), move(message), true); + WSMessageLoop::the().post_message((*it).value.leak_ptr(), move(message)); m_windows.remove(window_id); return 0; } @@ -258,12 +258,10 @@ int Process::gui$set_global_cursor_tracking_enabled(int window_id, bool enabled) void Process::destroy_all_windows() { - InterruptFlagSaver saver; - sti(); for (auto& it : m_windows) { auto message = make(WSMessage::WM_DestroyWindow); it.value->notify_process_died(Badge()); - WSMessageLoop::the().post_message(it.value.leak_ptr(), move(message), true); + WSMessageLoop::the().post_message(it.value.leak_ptr(), move(message)); } m_windows.clear(); } diff --git a/WindowServer/WSMessageLoop.cpp b/WindowServer/WSMessageLoop.cpp index 0f677ab524..d7875079e6 100644 --- a/WindowServer/WSMessageLoop.cpp +++ b/WindowServer/WSMessageLoop.cpp @@ -67,15 +67,8 @@ int WSMessageLoop::exec() } } -void WSMessageLoop::post_message(WSMessageReceiver* receiver, OwnPtr&& message, bool unsafe) +void WSMessageLoop::post_message(WSMessageReceiver* receiver, OwnPtr&& message) { - if (unsafe) { - // FIXME: This is such a hack. It should not exist. - m_queued_messages.append({ receiver, move(message) }); - if (current != m_server_process) - m_server_process->request_wakeup(); - return; - } LOCKER(m_lock); #ifdef WSEVENTLOOP_DEBUG dbgprintf("WSMessageLoop::post_message: {%u} << receiver=%p, message=%p\n", m_queued_messages.size(), receiver, message.ptr()); diff --git a/WindowServer/WSMessageLoop.h b/WindowServer/WSMessageLoop.h index e3e854a5b4..3a81ccb4dc 100644 --- a/WindowServer/WSMessageLoop.h +++ b/WindowServer/WSMessageLoop.h @@ -15,7 +15,7 @@ public: int exec(); - void post_message(WSMessageReceiver* receiver, OwnPtr&&, bool unsafe = false); + void post_message(WSMessageReceiver* receiver, OwnPtr&&); static WSMessageLoop& the();