macOS: Fix a deadlock with CVDisplayLink

I had added an optimization to not pass messages to
main thread every time the CVDisplayLink timer fired, unless
a render frame for that monitor was actually requested.

However, this optimization is impossible to implement wihtout a deadlock
since CVDisplayLink has its own internal lock that it does not expose.

So I guess macOS users with multiple monitors will simply have to take
the performance hit of useless wakeups sixty times a second for every
extra monitor.

Fixes #1779
This commit is contained in:
Kovid Goyal
2019-07-05 20:16:32 +05:30
parent edc8878632
commit 39f6071c68
5 changed files with 16 additions and 35 deletions

View File

@@ -41,6 +41,8 @@ To update |kitty|, :doc:`follow the instructions <binary>`.
- Linux: Use the system "bell" sound for the terminal bell. Adds libcanberra
as a new dependency to play the system sound.
- macOS: Fix a rare deadlock causing kitty to hang (:iss:`1779`)
0.14.2 [2019-06-09]
---------------------