changeset 10260:b0139e9a4bdd

8049198: [macosx] Incorrect thread access when showing splash screen Reviewed-by: serb, pchelko
author alexsch
date Fri, 14 Nov 2014 15:03:47 +0300
parents 4fa603c72f2f
children 5a29fd30ffaa
files src/macosx/native/sun/awt/splashscreen/splashscreen_sys.m
diffstat 1 files changed, 7 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/macosx/native/sun/awt/splashscreen/splashscreen_sys.m	Fri Nov 14 14:59:10 2014 +0300
+++ b/src/macosx/native/sun/awt/splashscreen/splashscreen_sys.m	Fri Nov 14 15:03:47 2014 +0300
@@ -45,6 +45,7 @@
 #include <dlfcn.h>
 
 #include <sizecalc.h>
+#import "ThreadUtilities.h"
 
 static NSScreen* SplashNSScreen()
 {
@@ -130,8 +131,12 @@
     NSAutoreleasePool *pool = [NSAutoreleasePool new];
     *scaleFactor = 1;
     char* scaledFile = nil;
-    float screenScaleFactor = [SplashNSScreen() backingScaleFactor];
-    
+    __block float screenScaleFactor = 1;
+
+    [ThreadUtilities performOnMainThreadWaiting:YES block:^(){
+        screenScaleFactor = [SplashNSScreen() backingScaleFactor];
+    }];
+
     if (screenScaleFactor > 1) {
         NSString *fileName = [NSString stringWithUTF8String: file];
         NSUInteger length = [fileName length];