Revert "windows: Don't flood windows message queue with gpui messages" (#41803)
Reverts zed-industries/zed#41595 Closes #41704
This commit is contained in:
@@ -80,27 +80,15 @@ impl PlatformDispatcher for WindowsDispatcher {
|
||||
}
|
||||
|
||||
fn dispatch_on_main_thread(&self, runnable: Runnable) {
|
||||
let was_empty = self.main_sender.is_empty();
|
||||
match self.main_sender.send(runnable) {
|
||||
Ok(_) => unsafe {
|
||||
// Only send a `WM_GPUI_TASK_DISPATCHED_ON_MAIN_THREAD` to the
|
||||
// queue if we have no runnables queued up yet, otherwise we
|
||||
// risk filling the message queue with gpui messages causing us
|
||||
// to starve the message loop of system messages, resulting in a
|
||||
// process hang.
|
||||
//
|
||||
// When the message loop receives a
|
||||
// `WM_GPUI_TASK_DISPATCHED_ON_MAIN_THREAD` message we drain the
|
||||
// runnable queue entirely.
|
||||
if was_empty {
|
||||
PostMessageW(
|
||||
Some(self.platform_window_handle.as_raw()),
|
||||
WM_GPUI_TASK_DISPATCHED_ON_MAIN_THREAD,
|
||||
WPARAM(self.validation_number),
|
||||
LPARAM(0),
|
||||
)
|
||||
.log_err();
|
||||
}
|
||||
PostMessageW(
|
||||
Some(self.platform_window_handle.as_raw()),
|
||||
WM_GPUI_TASK_DISPATCHED_ON_MAIN_THREAD,
|
||||
WPARAM(self.validation_number),
|
||||
LPARAM(0),
|
||||
)
|
||||
.log_err();
|
||||
},
|
||||
Err(runnable) => {
|
||||
// NOTE: Runnable may wrap a Future that is !Send.
|
||||
|
||||
Reference in New Issue
Block a user