tree 3287fe4275c5059695f80bca29cfb7bbd1a472cf
parent 49eae3ac3291e29ffd88e226cd7ad9ccf86e3e0a
author Boris Zbarsky <bzbarsky@apple.com> 1685046726 -0400
committer GitHub <noreply@github.com> 1685046726 -0400
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJkb8XGCRBK7hj4Ov3rIwAAr+oIAC+NjWhf6e8yf8HodvYL7pnD
 RbsmsepKq4s4YyXnSbbZe3C2ukBJFCi8j7AQrQYWs5s68JkTThnkm5JTLyE0hgPg
 PUF09b5UDBiPprZ3donblgM8zpRfVgjh1He3Ho1vlEVOi+/I3LUts+BQTSHxI8TG
 iQNIhriVmoT8o6ZNmGQ/yc5YVmTR+mBaEhAq/FvjVDd7xUlivkUY7V/wyRB04nJp
 9M1HrceE7ZKtUKEAWitF18zgOkpWGUF8tqcllsVc//LwWXlk5IuMj5BOUs4oIy9S
 qrHx8PeAlRuUlLM/HBETnfZlVqViPpIJAevqppwJHLJYGMOcKIoZ8/LeH45Hf+g=
 =Xvpp
 -----END PGP SIGNATURE-----
 

Fix ThreadSanitizer failure in controller factory. (#26824)

* Fix ThreadSanitizer failure in controller factory.

The failure looks like this:

  WARNING: ThreadSanitizer: race on NSMutableArray (pid=11619)
    Read-only access of NSMutableArray at 0x7b0c0005f5b0 by thread T3:
      #0 -[__NSArrayM countByEnumeratingWithState:objects:count:] <null>:2 (CoreFoundation:x86_64+0x4a338)
      #1 -[MTRDeviceControllerFactory(InternalMethods) operationalInstanceAdded:] MTRDeviceControllerFactory.mm:855 (Matter:x86_64+0x1fd2a)
      #2 MTROperationalBrowser::OnBrowse(_DNSServiceRef_t*, unsigned int, unsigned int, int, char const*, char const*, char const*, void*) MTROperationalBrowser.mm:100 (Matter:x86_64+0x20ee63c)
      #3 handle_browse_response <null>:2 (libsystem_dnssd.dylib:x86_64+0x3733)
      #4 _dispatch_client_callout <null>:2 (libdispatch.dylib:x86_64+0x3316)

    Previous modifying access of NSMutableArray at 0x7b0c0005f5b0 by main thread:
      #0 -[__NSArrayM addObject:] <null>:2 (CoreFoundation:x86_64+0x2457a)
      #1 -[MTRDeviceControllerFactory createController] MTRDeviceControllerFactory.mm:719 (Matter:x86_64+0x1cee3)
      #2 -[MTRDeviceControllerFactory createControllerOnExistingFabric:error:] MTRDeviceControllerFactory.mm:534 (Matter:x86_64+0x19792)

The basic problem is that we are in the middle of adding an object to
_controllers on the API consumer thread when on the Matter thread we get our
browse notification.

The changes here don't aim to lock around all access to _controllers, but just
to make sure that our mutations of it can't race with the access on the Matter
thread.  More coarse locking would need to be done very carefully, given the
amount of dispath_sync to the Matter thread we have going on.

* Address review comments.