Title: [261101] trunk/Tools
Revision
261101
Author
[email protected]
Date
2020-05-04 12:46:27 -0700 (Mon, 04 May 2020)

Log Message

[Catalina] ASSERTION FAILED: Unsafe to ref/deref from different threads seen with TestWebKitAPI.MultipleClientCertificateConnections.Failure
https://bugs.webkit.org/show_bug.cgi?id=211300

Patch by Alex Christensen <[email protected]> on 2020-05-04
Reviewed by Youenn Fablet.

RequestData references are stored in blocks given to the network framework, which does things on background threads.
To make them safe to ref and deref on non-main threads, make RequestData ThreadSafeRefCounted.

* TestWebKitAPI/cocoa/HTTPServer.mm:

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (261100 => 261101)


--- trunk/Tools/ChangeLog	2020-05-04 19:44:50 UTC (rev 261100)
+++ trunk/Tools/ChangeLog	2020-05-04 19:46:27 UTC (rev 261101)
@@ -1,3 +1,15 @@
+2020-05-04  Alex Christensen  <[email protected]>
+
+        [Catalina] ASSERTION FAILED: Unsafe to ref/deref from different threads seen with TestWebKitAPI.MultipleClientCertificateConnections.Failure
+        https://bugs.webkit.org/show_bug.cgi?id=211300
+
+        Reviewed by Youenn Fablet.
+
+        RequestData references are stored in blocks given to the network framework, which does things on background threads.
+        To make them safe to ref and deref on non-main threads, make RequestData ThreadSafeRefCounted.
+
+        * TestWebKitAPI/cocoa/HTTPServer.mm:
+
 2020-05-04  Darin Adler  <[email protected]>
 
         Remove now-unneeded HAVE(MEDIA_PLAYER)

Modified: trunk/Tools/TestWebKitAPI/cocoa/HTTPServer.mm (261100 => 261101)


--- trunk/Tools/TestWebKitAPI/cocoa/HTTPServer.mm	2020-05-04 19:44:50 UTC (rev 261100)
+++ trunk/Tools/TestWebKitAPI/cocoa/HTTPServer.mm	2020-05-04 19:46:27 UTC (rev 261101)
@@ -32,12 +32,13 @@
 #import <wtf/BlockPtr.h>
 #import <wtf/CompletionHandler.h>
 #import <wtf/RetainPtr.h>
+#import <wtf/ThreadSafeRefCounted.h>
 #import <wtf/text/StringBuilder.h>
 #import <wtf/text/WTFString.h>
 
 namespace TestWebKitAPI {
 
-struct HTTPServer::RequestData : public RefCounted<RequestData> {
+struct HTTPServer::RequestData : public ThreadSafeRefCounted<RequestData, WTF::DestructionThread::MainRunLoop> {
     RequestData(std::initializer_list<std::pair<String, HTTPResponse>> responses)
     : requestMap([](std::initializer_list<std::pair<String, HTTPServer::HTTPResponse>> list) {
         HashMap<String, HTTPServer::HTTPResponse> map;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to