Nano-optimisation: Avoid using a block with GCD

This commit is contained in:
Kovid Goyal 2025-10-22 13:40:42 +05:30
parent 6a6b0b47a3
commit 33b9d858ad
No known key found for this signature in database
GPG key ID: 06BC317B515ACE7C
2 changed files with 6 additions and 6 deletions

View file

@ -70,6 +70,8 @@ _glfwClearDisplayLinks(void) {
displayLinks.count = 0;
}
static void _glfwDispatchRenderFrame(void *);
static CVReturn
displayLinkCallback(
CVDisplayLinkRef displayLink UNUSED,
@ -84,9 +86,7 @@ displayLinkCallback(
CGDirectDisplayID displayID = entry->displayID;
if (should_dispatch) entry->pending_dispatch = true;
os_unfair_lock_unlock(lock);
if (should_dispatch) dispatch_async(dispatch_get_main_queue(), ^{
_glfwDispatchRenderFrame(displayID);
});
if (should_dispatch) dispatch_async_f(dispatch_get_main_queue(), (void*)(uintptr_t)displayID, _glfwDispatchRenderFrame);
}
return kCVReturnSuccess;
}
@ -241,8 +241,9 @@ _glfwRequestRenderFrame(_GLFWwindow *w) {
}
}
void
_glfwDispatchRenderFrame(CGDirectDisplayID displayID) {
static void
_glfwDispatchRenderFrame(void *passed_in_data) {
CGDirectDisplayID displayID = (uintptr_t)passed_in_data;
_GLFWwindow *w = _glfw.windowListHead;
while (w) {
if (w->ns.renderFrameRequested && displayID == displayIDForWindow(w)) {

View file

@ -245,7 +245,6 @@ void* _glfwLoadLocalVulkanLoaderNS(void);
void _glfwClearDisplayLinks(void);
void _glfwRestartDisplayLinks(void);
unsigned _glfwCreateDisplayLink(CGDirectDisplayID);
void _glfwDispatchRenderFrame(CGDirectDisplayID);
void _glfwRequestRenderFrame(_GLFWwindow *w);
// event loop