Title: [268838] branches/safari-610-branch/Source/WebKit
Revision
268838
Author
alanc...@apple.com
Date
2020-10-21 15:16:08 -0700 (Wed, 21 Oct 2020)

Log Message

Cherry-pick r268570. rdar://problem/70541887

    v2: WebKit::XPCServiceEventHandler block should call exit() on the main thread
    <https://webkit.org/b/217773>
    <rdar://problem/70275659>

    Reviewed by Geoff Garen.

    * Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
    (WebKit::XPCServiceEventHandler):
    - Use NSRunLoop instead of libdispatch to run code on the main
      thread since libdispatch can randomly pick a new main thread when
      exit() is called on the original main thread.

    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@268570 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Modified Paths

Diff

Modified: branches/safari-610-branch/Source/WebKit/ChangeLog (268837 => 268838)


--- branches/safari-610-branch/Source/WebKit/ChangeLog	2020-10-21 22:16:06 UTC (rev 268837)
+++ branches/safari-610-branch/Source/WebKit/ChangeLog	2020-10-21 22:16:08 UTC (rev 268838)
@@ -1,5 +1,37 @@
 2020-10-21  Russell Epstein  <repst...@apple.com>
 
+        Cherry-pick r268570. rdar://problem/70541887
+
+    v2: WebKit::XPCServiceEventHandler block should call exit() on the main thread
+    <https://webkit.org/b/217773>
+    <rdar://problem/70275659>
+    
+    Reviewed by Geoff Garen.
+    
+    * Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
+    (WebKit::XPCServiceEventHandler):
+    - Use NSRunLoop instead of libdispatch to run code on the main
+      thread since libdispatch can randomly pick a new main thread when
+      exit() is called on the original main thread.
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@268570 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2020-10-15  David Kilzer  <ddkil...@apple.com>
+
+            v2: WebKit::XPCServiceEventHandler block should call exit() on the main thread
+            <https://webkit.org/b/217773>
+            <rdar://problem/70275659>
+
+            Reviewed by Geoff Garen.
+
+            * Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
+            (WebKit::XPCServiceEventHandler):
+            - Use NSRunLoop instead of libdispatch to run code on the main
+              thread since libdispatch can randomly pick a new main thread when
+              exit() is called on the original main thread.
+
+2020-10-21  Russell Epstein  <repst...@apple.com>
+
         Cherry-pick r268602. rdar://problem/70541712
 
     [WebAuthn] Remove the "alg" field in the attestation statement

Modified: branches/safari-610-branch/Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm (268837 => 268838)


--- branches/safari-610-branch/Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm	2020-10-21 22:16:06 UTC (rev 268837)
+++ branches/safari-610-branch/Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm	2020-10-21 22:16:08 UTC (rev 268838)
@@ -48,7 +48,9 @@
         if (type == XPC_TYPE_ERROR) {
             if (event == XPC_ERROR_CONNECTION_INVALID || event == XPC_ERROR_TERMINATION_IMMINENT) {
                 // FIXME: Handle this case more gracefully.
-                exit(EXIT_FAILURE);
+                [[NSRunLoop mainRunLoop] performBlock:^{
+                    exit(EXIT_FAILURE);
+                }];
             }
         } else {
             assert(type == XPC_TYPE_DICTIONARY);
@@ -73,7 +75,9 @@
                 InitializerFunction initializerFunctionPtr = reinterpret_cast<InitializerFunction>(CFBundleGetFunctionPointerForName(webKitBundle, entryPointFunctionName));
                 if (!initializerFunctionPtr) {
                     NSLog(@"Unable to find entry point in WebKit.framework with name: %@", (__bridge NSString *)entryPointFunctionName);
-                    exit(EXIT_FAILURE);
+                    [[NSRunLoop mainRunLoop] performBlock:^{
+                        exit(EXIT_FAILURE);
+                    }];
                 }
 
                 auto reply = adoptOSObject(xpc_dictionary_create_reply(event));
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to