mirror of
https://github.com/kovidgoyal/kitty
synced 2026-07-22 16:28:19 +02:00
Better fix for macOS deadlock
Fix it in glfw. Dont hold the tick lock when calling the tick callback as the tick callback might be waiting on a lock.
This commit is contained in:
@@ -1020,12 +1020,15 @@ static NSLock *tick_lock = NULL;
|
|||||||
|
|
||||||
void _glfwDispatchTickCallback(void) {
|
void _glfwDispatchTickCallback(void) {
|
||||||
if (tick_lock && tick_callback) {
|
if (tick_lock && tick_callback) {
|
||||||
[tick_lock lock];
|
while(true) {
|
||||||
while(tick_callback_requested) {
|
bool do_call = true;
|
||||||
|
[tick_lock lock];
|
||||||
|
if (!tick_callback_requested) do_call = false;
|
||||||
tick_callback_requested = false;
|
tick_callback_requested = false;
|
||||||
tick_callback(tick_callback_data);
|
[tick_lock unlock];
|
||||||
|
if (do_call) tick_callback(tick_callback_data);
|
||||||
|
else break;
|
||||||
}
|
}
|
||||||
[tick_lock unlock];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user