diff --git a/src/video/cocoa/SDL_cocoaopengl.m b/src/video/cocoa/SDL_cocoaopengl.m index 74e93ed10..c4db2565b 100644 --- a/src/video/cocoa/SDL_cocoaopengl.m +++ b/src/video/cocoa/SDL_cocoaopengl.m @@ -66,7 +66,11 @@ int value = SDL_AtomicSet(&self->dirty, 0); if (value > 0) { /* We call the real underlying update here, since -[SDLOpenGLContext update] just calls us. */ - [super performSelectorOnMainThread:@selector(update) withObject:nil waitUntilDone:NO]; + if ([NSThread isMainThread]) { + [super update]; + } else { + [super performSelectorOnMainThread:@selector(update) withObject:nil waitUntilDone:NO]; + } } }