|
23 | 23 | #import "MTRDevice_XPC_Internal.h"
|
24 | 24 | #import "MTRError_Internal.h"
|
25 | 25 | #import "MTRLogging_Internal.h"
|
| 26 | +#import "MTRUnfairLock.h" |
26 | 27 | #import "MTRXPCClientProtocol.h"
|
27 | 28 | #import "MTRXPCServerProtocol.h"
|
28 | 29 |
|
@@ -72,28 +73,26 @@ @implementation MTRDeviceController_XPC
|
72 | 73 |
|
73 | 74 | - (void)_updateRegistrationInfo
|
74 | 75 | {
|
75 |
| - dispatch_async(self.workQueue, ^{ |
76 |
| - std::lock_guard lock(*self.deviceMapLock); |
| 76 | + std::lock_guard lock(*self.deviceMapLock); |
77 | 77 |
|
78 |
| - NSMutableDictionary * registrationInfo = [NSMutableDictionary dictionary]; |
| 78 | + NSMutableDictionary * registrationInfo = [NSMutableDictionary dictionary]; |
79 | 79 |
|
80 |
| - NSMutableDictionary * controllerContext = [NSMutableDictionary dictionary]; |
81 |
| - NSMutableArray * nodeIDs = [NSMutableArray array]; |
| 80 | + NSMutableDictionary * controllerContext = [NSMutableDictionary dictionary]; |
| 81 | + NSMutableArray * nodeIDs = [NSMutableArray array]; |
82 | 82 |
|
83 |
| - for (NSNumber * nodeID in [self.nodeIDToDeviceMap keyEnumerator]) { |
84 |
| - MTRDevice * device = self.nodeIDToDeviceMap[nodeID]; |
85 |
| - if ([device delegateExists]) { |
86 |
| - NSMutableDictionary * nodeDictionary = [NSMutableDictionary dictionary]; |
87 |
| - MTR_REQUIRED_ATTRIBUTE(MTRDeviceControllerRegistrationNodeIDKey, nodeID, nodeDictionary) |
| 83 | + for (NSNumber * nodeID in [self.nodeIDToDeviceMap keyEnumerator]) { |
| 84 | + MTRDevice * device = [self.nodeIDToDeviceMap objectForKey:nodeID]; |
| 85 | + if ([device delegateExists]) { |
| 86 | + NSMutableDictionary * nodeDictionary = [NSMutableDictionary dictionary]; |
| 87 | + MTR_REQUIRED_ATTRIBUTE(MTRDeviceControllerRegistrationNodeIDKey, nodeID, nodeDictionary) |
88 | 88 |
|
89 |
| - [nodeIDs addObject:nodeDictionary]; |
90 |
| - } |
| 89 | + [nodeIDs addObject:nodeDictionary]; |
91 | 90 | }
|
92 |
| - MTR_REQUIRED_ATTRIBUTE(MTRDeviceControllerRegistrationNodeIDsKey, nodeIDs, registrationInfo) |
93 |
| - MTR_REQUIRED_ATTRIBUTE(MTRDeviceControllerRegistrationControllerContextKey, controllerContext, registrationInfo) |
| 91 | + } |
| 92 | + MTR_REQUIRED_ATTRIBUTE(MTRDeviceControllerRegistrationNodeIDsKey, nodeIDs, registrationInfo) |
| 93 | + MTR_REQUIRED_ATTRIBUTE(MTRDeviceControllerRegistrationControllerContextKey, controllerContext, registrationInfo) |
94 | 94 |
|
95 |
| - [self updateControllerConfiguration:registrationInfo]; |
96 |
| - }); |
| 95 | + [self updateControllerConfiguration:registrationInfo]; |
97 | 96 | }
|
98 | 97 |
|
99 | 98 | - (void)_registerNodeID:(NSNumber *)nodeID
|
|
0 commit comments