From eabc382540a2325a9e8ea1ab3dc92843fb33c0ac Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Sat, 19 Mar 2016 23:02:42 -0400 Subject: [PATCH] Fixed: of course I can't rely on the pointer to CVTimeStamp not becoming dangling during a queue jump. --- OSBindings/Mac/Clock Signal/Views/CSOpenGLView.m | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OSBindings/Mac/Clock Signal/Views/CSOpenGLView.m b/OSBindings/Mac/Clock Signal/Views/CSOpenGLView.m index 30d5d6f72..7bd943fe2 100644 --- a/OSBindings/Mac/Clock Signal/Views/CSOpenGLView.m +++ b/OSBindings/Mac/Clock Signal/Views/CSOpenGLView.m @@ -55,8 +55,9 @@ static CVReturn DisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTimeSt const uint32_t activityMask = 0x01; if(!OSAtomicTestAndSet(activityMask, &_updateIsOngoing)) { + CVTimeStamp time = *now; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ - [self.delegate openGLView:self didUpdateToTime:*now]; + [self.delegate openGLView:self didUpdateToTime:time]; [self drawViewOnlyIfDirty:YES]; OSAtomicTestAndClear(activityMask, &_updateIsOngoing); });