arphaman added inline comments.
Herald added a subscriber: dexonsmith.

================
Comment at: xpc/test-client/ClangdXPCTestClient.cpp:51
+          dlHandle, "clangd_xpc_get_bundle_identifier");
+  xpc_connection_t conn =
+      xpc_connection_create(clangd_xpc_get_bundle_identifier(), NULL);
----------------
jkorous wrote:
> arphaman wrote:
> > We should probably use the main queue here too to ensure that we don't get 
> > bit by concurrent handler invocations. 
> As far as I understand it this is taken care of by calling dispatch_main().
> 
> Per man dispatch_main:
> "MAIN QUEUE
> [...]
>      Programs must call dispatch_main() at the end of main() in order to 
> process blocks submitted to the main queue."
> 
Not really. The documentation for the parameter states the following: 

The GCD queue to which the event handler block will be submitted. This 
parameter may be NULL, in which case the connection's target queue will be 
libdispatch's default target queue, defined as DISPATCH_TARGET_QUEUE_DEFAULT. 
The target queue may be changed later with a call to 
xpc_connection_set_target_queue(). 

So the handler blocks will be submitted to the concurrent queue 
(DISPATCH_TARGET_QUEUE_DEFAULT) which means that they might end up running 
concurrently.


https://reviews.llvm.org/D48562



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to