mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-25 13:16:11 +03:00
slow down our cursor timer under valgrind
This commit is contained in:
@ -248,7 +248,7 @@ fn threadMain_(self: *Thread) !void {
|
|||||||
self.cursor_h.run(
|
self.cursor_h.run(
|
||||||
&self.loop,
|
&self.loop,
|
||||||
&self.cursor_c,
|
&self.cursor_c,
|
||||||
CURSOR_BLINK_INTERVAL,
|
cursorBlinkInterval(),
|
||||||
Thread,
|
Thread,
|
||||||
self,
|
self,
|
||||||
cursorTimerCallback,
|
cursorTimerCallback,
|
||||||
@ -408,7 +408,7 @@ fn drainMailbox(self: *Thread) !void {
|
|||||||
self.cursor_h.run(
|
self.cursor_h.run(
|
||||||
&self.loop,
|
&self.loop,
|
||||||
&self.cursor_c,
|
&self.cursor_c,
|
||||||
CURSOR_BLINK_INTERVAL,
|
cursorBlinkInterval(),
|
||||||
Thread,
|
Thread,
|
||||||
self,
|
self,
|
||||||
cursorTimerCallback,
|
cursorTimerCallback,
|
||||||
@ -424,7 +424,7 @@ fn drainMailbox(self: *Thread) !void {
|
|||||||
&self.loop,
|
&self.loop,
|
||||||
&self.cursor_c,
|
&self.cursor_c,
|
||||||
&self.cursor_c_cancel,
|
&self.cursor_c_cancel,
|
||||||
CURSOR_BLINK_INTERVAL,
|
cursorBlinkInterval(),
|
||||||
Thread,
|
Thread,
|
||||||
self,
|
self,
|
||||||
cursorTimerCallback,
|
cursorTimerCallback,
|
||||||
@ -641,7 +641,14 @@ fn cursorTimerCallback(
|
|||||||
t.flags.cursor_blink_visible = !t.flags.cursor_blink_visible;
|
t.flags.cursor_blink_visible = !t.flags.cursor_blink_visible;
|
||||||
t.wakeup.notify() catch {};
|
t.wakeup.notify() catch {};
|
||||||
|
|
||||||
t.cursor_h.run(&t.loop, &t.cursor_c, CURSOR_BLINK_INTERVAL, Thread, t, cursorTimerCallback);
|
t.cursor_h.run(
|
||||||
|
&t.loop,
|
||||||
|
&t.cursor_c,
|
||||||
|
cursorBlinkInterval(),
|
||||||
|
Thread,
|
||||||
|
t,
|
||||||
|
cursorTimerCallback,
|
||||||
|
);
|
||||||
return .disarm;
|
return .disarm;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -687,3 +694,19 @@ fn stopCallback(
|
|||||||
self_.?.loop.stop();
|
self_.?.loop.stop();
|
||||||
return .disarm;
|
return .disarm;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns the interval for the blinking cursor in milliseconds.
|
||||||
|
fn cursorBlinkInterval() u64 {
|
||||||
|
if (std.valgrind.runningOnValgrind() > 0) {
|
||||||
|
// If we're running under Valgrind, the cursor blink adds enough
|
||||||
|
// churn that it makes some stalls annoying unless you're on a
|
||||||
|
// super powerful computer, so we delay it.
|
||||||
|
//
|
||||||
|
// This is a hack, we should change some of our cursor timer
|
||||||
|
// logic to be more efficient:
|
||||||
|
// https://github.com/ghostty-org/ghostty/issues/8003
|
||||||
|
return CURSOR_BLINK_INTERVAL * 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
return CURSOR_BLINK_INTERVAL;
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user