Fix thread safety crash in BluetoothMeshService

- Fix race condition where recentlySentMessages Set was being modified from different queues
- Move all Set.remove operations to messageQueue instead of main queue
- Prevents EXC_BREAKPOINT crash when removing elements during concurrent access
This commit is contained in:
jack
2025-07-07 00:26:22 +02:00
parent 0db5312584
commit d3c1b77015
+2 -2
View File
@@ -536,7 +536,7 @@ class BluetoothMeshService: NSObject {
self.recentlySentMessages.insert(msgID)
// Clean up old entries after 10 seconds
DispatchQueue.main.asyncAfter(deadline: .now() + 10.0) { [weak self] in
self.messageQueue.asyncAfter(deadline: .now() + 10.0) { [weak self] in
self?.recentlySentMessages.remove(msgID)
}
@@ -634,7 +634,7 @@ class BluetoothMeshService: NSObject {
self.recentlySentMessages.insert(msgID)
// Clean up after 10 seconds
DispatchQueue.main.asyncAfter(deadline: .now() + 10.0) { [weak self] in
self.messageQueue.asyncAfter(deadline: .now() + 10.0) { [weak self] in
self?.recentlySentMessages.remove(msgID)
}